بهینه سازی وب سرور nginx
Nginx در قیاس با PHP و MySQL نیاز به بهینه سازی کمتری دارد و شما به سادگی میتوانید تنظیمات وب سرور nginx را با ویرایش فایل /etc/nginx/nginx.conf بهینه سازی کنید. توضیحات جامع تر در مورد کانفیگ nginx را میتوانید در مقالات کانفیگ وب سرور Nginx – بخش اول و کانفیگ وب سرور Nginx – بخش دوم مطالعه نمایید.
worker_processes
آسان ترین و در عین حال مهمترین کاری که برای بهبود کارایی این وب سرور می توانید انجام دهید، تنظیم صحیح تعداد Worker ها و تعداد اتصالات است. این آیتم خیلی مهم است و تعداد فرایندهای worker درحال اجرای Nginx را کنترل می کند. worker_processes مساوی با تعداد پردازنده ها در سیستم شماست.
1 |
worker_processes = number of processors |
برای این که پیدا کنید سرور شما چند پردازنده دارد میتوانید دستور زیر را در SSH اجرا نمایید:
1 |
grep processor /proc/cpuinfo | wc –l |
خروجی این دستور فقط یک عدد را به شما نشان میدهد که تعداد پردازنده های شماست و باید آن را به عنوان مقدار worker_processes تنظیم کنید.
worker_connections
اگر سرور دارای تعداد زیادی سایت پربازدید و پر ترافیک است بهتر است مقدار worker_connections را افزایش دهید. پیشفرض این مقدار ۷۶۸ است. از نظر تئوری، Nginx میتواند حداکثر کلاینت که از حاصلضرب مقدار worker_processes در worker_connections بدست می آید را کنترل و اداره کند.
1 |
max clients = worker_processes * worker_connections |
پیشنهاد ما مقدار ۱۰۲۴۰ است.
1 |
worker_connections = 10240 |
worker_rlimit_nofile
این مقدار تعداد فایل های باز شده توسط worker_process را افزایش میدهد. این دستور به صورت پیش فرض وجود ندارد. شما میتوانید این دستور را در فایل /etc/nginx/nginx.conf در بخش main و در زیر worker_processes اضافه کنید.
1 |
worker_rlimit_nofile 100000; |
keepalive_timeout
از این مقدار معانی زیادی دریافت کردیم. جدا از ترافیک، زمان پاسخ FASTCGI برگشتی برنامه یکی از فاکتورهایی است که باید برای بهینه سازی این دستور در نظرگرفته شود. مقدار پیش فرض آن ۶۵ یا ۷۵ ثانیه است اما پیشنهاد ما ۳۰ثانیه است.
1 |
keepalive_timeout = 30s |
این مقاله تکمیل خواهد شد.