image Follow Us:

!...IT never stop

بهینه سازی وب سرور انجینکس(nginx optimization)

برای بهینه سازی هرچه بهتر وب سرور nginx ابتدا باید دو مقدار worker_processes و worker_connections را که مهمترین بخش وب سرور است را با روش زیر مقداردهی کنیم.

 

ابتدا با دستور زیر فایل کانفیگ وب سرور nginx را ویرایش میکنیم:

nano /etc/nginx/nginx.conf

عبارت worker_connections به معنی توانایی میزبانی کاربران در واحد زمانی است که به صورت پیش فرض ۱۰۲۴کاربر در ثانیه داریم.

برای فهمیدن میزان قابل تنظیم worker processes دستور زیر را وارد کنید:

grep processor /proc/cpuinfo | wc -l

خروجی بالا میتواند مقدار مناسبی برای worker processes باشد.

همینطور خروجی دستور زیر نیز مقدار مناسبی برای worker_connections باشد:

ulimit -n

 

از بخش های مهم دیگر nginx بخش buffers است و اگر مقدار آن کم تنظیم شود، nginx مجبور به نوشتن temporary file است که در نتیجه افزایش استفاده از هاردیسک و بالابردن لود سرور را موجب می شود.

client_body_buffer_size: ارسال درخواست POST برای وب سرور است.

client_header_buffer_size: بهترین مقدار آن ،‌ ۱K میباشد.

client_max_body_size: بیشترین مقدار درخواست کاربر به سرور را تعیین میکند.

large_client_header_buffers:حداکثر اندازه Buffer ها برای large client headers است.


همانطور که گفتیم جهت بهینه سازی nginx لازم است بزخی فیلدها مقدار دهی شوند.

دستور زیر فایل کانفیگ وب سرور nginx را ویرایش میکنیم:

nano /etc/nginx/nginx.conf

 

Timeouts

فیلدهای client_body_timeout و client_header_timeout دو بخش مهم این section هستند.

این دو فیلد حداکثر زمان برای منتظر ماندن برای درخواست کاربر را کنترل میکنند و در صورتی که با Timeout مواجه شوند، عبارت ۴۰۸ error یا Request time out نمایش داده می شود.

keepalive_timeout نیز زمان قطع اتصال کاربر به سرور در هر session توسط nginx است.

send_timeout زمانی است که درخوستی ارسال نشود،  که در این صورتnginx اتصال را قطع میکند.


فشرده سازی GZip

تکنیک gzip جهت کاهش حجم انتقال اطلاعات ین کاربر و و سرور می باشد. با این حال توجه داشته باشید، باید در نظر داشت در صورت افزایش gzip_comp_level باعث Wasting Cpu Cycles میشود.

gzip  on;

Static File Caching
 
با استفاده از این section قادر خواهید بود برای فایل های که تغییر نمیکنند تاریخ انقضا تعیین کنید.
 
  
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
 
expires 365d;
 
}
پسوندهای مورد نظر را همانند مثال بالا اضافه کنید.
 
 
 
**برای غیرفعال کردن logهای وب سرور می توانید به فلید accsee_log مقدار off را بدهید.

 

پس از تغییر فایل nginx.conf لازم است در انتها ngnix ریستارت شود.

sudo service nginx restart