آموزش بهینه سازی Nginx (بخش سوم)

نویسنده: آبتین حیدرآبادیان| دسته بندی: آموزش سرور مجازی لینوکس میزبانی وب | نظرات: 2 نفر
آموزش بهینه سازی Nginx (بخش سوم)
3863
28 مهر 1397
آبتین حیدرآبادیان نویسنده

در این بخش از سری مطالب آموزش Nginx در وبلاگ آذرآنلاین به درخواست کاربران گرامی با آموزش بهینه سازی Nginx (بخش سوم) خدمت شما خواهیم بود تا بتوانید با رعایت و تنظیم چندین بخش ، بهترین کارایی را از Nginx داشته باشید.

در مطلب آموزش بهینه سازی Nginx (بخش اول) با مواردی همچون تغییرات در Worker و اتصالات آن ، بهینه سازی Keep Alive و تنظیمات بافر در Nginx پرداخته شد و همچنین در بخش دوم به مواردی چون صف اتصال ، نحوه نگه‌داری محتوای استاتیک ، تنظیم وقفه‌ها و استفاده از GZip در Nginx پرداختیم ، حال در این مطلب با ادامه آموزش‌های بهینه سازی Nginx در خدمت شما کاربران گرامی خواهیم بود.

با ادامه مبحث آموزش بهینه سازی Nginx (بخش سوم) همراه ما باشید.

آموزش بهینه سازی Nginx (بخش سوم)

در این بخش از بهینه سازی Nginx ، به مبحث بهینه سازی های فایل سیستم‌های Nginx پرداخته خواهد شد تا بتوانید به صورت کامل با آن آشنا شوید.

تمامی دستورات در این آموزش در فایل sysctl.conf انجام می‌گیرد ، بنابراین با استفاده از دستور زیر می‌توانید فایل تنظیمات را باز کرده و آن را ویرایش نمایید.

nano /etc/systcl.conf
  •  تنظیم پورت‌های موقت

زمانی که شما از یک وب سرور Nginx به عنوان یک پروکسی سرور استفاده می‌نمایید ، هر اتصال به سرور از یک پورت موقت استفاده می‌کند.

رنج پورت IP ورژن 4 محلی ، محدوده رنج پورت را مشخص می‌نماید.

به طور مثال ، در عبارت زیر نمونه‌ای از تنظیمات رایج پورت‌های موقت را مشاهده می‌نمایید.

net.ipv4.ip_local_port_range 1024 65000

وقفه پروتکل TCP FIN ، مقدار زمانی را که یک پورت باید قبل از اینکه بتواند برای اتصال دیگر دوباره مورد استفاده قرار بگیرد ، غیرفعال باشد را مشخص می کند. زمان پیش‌فرض برای این موضوع ۶۰ ثانیه است. اما معمولا برای امنیت بیشتر آن را به ۳۰ یا حتی ۱۵ ثانیه می‌توان کاهش داد.

net.ipv4.tcp_fin_timeout 15
  • اندازه پنجره‌های TCP

گزینه اندازه پنجره TCP ،  گزینه‌ای است که می‌تواند اندازه پنجره را نسبت به آنچه در پروتکل کنترل انتقال مجاز شمرده می‌شود را افزایش دهد و آن را از مقدار پیشین آن که ۶۵۵۳۵ بایت است بالاتر ببرد. این امکان در TCP به همراه چند گزینه دیگر در IETF RFC با مقدار ۱۳۲۳ تعیین شده که برای کار در شبکه‌های بزرگ مناسب است. این گزینه می‌تواند در کدی مانند زیر مقداردهی شود.

net.ipv4.tcp_window_scaling = 1
  • جمع‌آوری بسته‌ها قبل از رها شدن آنها

برای جمع‌آوری بسته‌ها قبل از رها شدن می‌توان از دستور net.ipv4.tcp_max_syn_backlog استفاده نمود و قبل از اینکه هسته شروع به رهاسازی کند ، آنها را جمع کند.

به طور مثال برای مقدار دهی می‌توان مشابه زیر عمل کرد.

net.ipv4.tcp_max_syn_backlog = 3240000
  • قطع اتصال به پاسخ کلاینت‌های از دست رفته

به واسطه قرار دادن کد زیر در فایل sysctl.conf ، به سرور این اجازه داده می‌شود که پس از اینکه درخواستی از سمت کلاینت به سمت سرور ارسال نمی‌شود ، اتصال را قطع کرده تا حافظه اختصاص داده شده به سوکت ، آزاد گردد.

reset_timedout_connection on;
  • تنظیم توصیف گرهای فایل

توصیف گرهای فایل ، منابعی از سیستم عامل هستند که کارشان مدیریت کردن مواردی مانند اتصالات و فایل‌های باز است.  وب سرور Nginx می‌تواند تا دو توصیف‌گر فایل را برای هر اتصال استفاده کند. به عنوان مثال، اگر از یک سرور به عنوان پراکسی استفاده می‌کنید، معمولا یک توصیف گر فایل برای اتصال کلاینت و دیگری برای اتصال به سرور پراکسی استفاده می‌گردد. هرچند اگر از  اKeep Aliveستفاده نمایید این مقدار بسیار پایین‌تر خواههد آمد. برای سیستمی که به تعداد بالایی از اتصالات پاسخگویی می‌کند این تنظیمات حتما باید انجام شود.

sys.fs.file_max : حد گستردگی سیستم را برای توصیف گر های فایل مشخص می کند.

nofile : حد توصیف گر فایل کاربر را تعیین می کند.

نکته : این تنظیمات در فایل etc/security/limit.conf/ انجام می‌پذیرد.

به طور مثال می‌توان این دو مقدار را به شکل زیر در فایل اضافه نمود.

soft nofile 4096
hard nofile 4096
پایان بخش سوم

امیدواریم از مطلب آموزش بهینه سازی Nginx (بخش سوم) استفاده لازم را برده باشید.

برای مطالعه بخش اول و دوم و چهارم آموزش بهینه‌سازی Nginx به لینک‌های زیر مراجعه نمایید.

آموزش بهینه سازی Nginx (بخش اول)

آموزش بهینه سازی Nginx (بخش دوم)

آموزش بهینه سازی Nginx (بخش چهارم)

کاربر گرامی شما می‌توانید سؤالات مربوط به این آموزش را در بخش کامنت‌ها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید و یا برای رفع مشکلات دیگر در زمینه آموزش‌های آذرآنلاین به بخش Community مراجعه کرده و مشکل خود را در آن مطرح نمایید تا در اسرع وقت کاربران دیگر و کارشناسان به سؤالات شما پاسخ دهند.