آموزش تنظیمات و بهینه سازی وب سرور nginx - وان سرور آکـادمی
آموزش تنظیمات و بهینه سازی وب سرور nginx
آموزش تنظیمات و بهینه سازی وب سرور nginx

آموزش تنظیمات و بهینه سازی وب سرور nginx

زمان تقریبی مطالعه: 3 دقیقه

آموزش تنظیمات و بهینه سازی وب سرور nginx

حتما نام nginx را شنیده اید و یا حتما از این وب سرور قدرتمندی که فقط چندی سال از ظهورش میگذرد استفاده میکنید.

Nginx سرعت پاسخگویی بسیار بالایی دارد و در بازدید های بسیار بالا واقعا عالی عمل می کند. از جمله قابلیت های Nginx سازگاری این وب سرور با اکثر توزیع های لینوکس هست. مستندات Nginx به نظر بسیار خوب هست و فروم Nginx هم بسیار بهتر،  من خودم اکثر سوالاتم رو در این سایت در زمان بسیار کوتاهی دریافت می کنم و این برای من بسیار ارزشمند هست. بروز رسانی و نصب Nginx  بسیار ساده است و یکی از قابلیت های خوب Nginx این هست.
در زمانی که شما می خواهید به نسخه جدید تر   Nginx خودتون رو اپگرید کنید به صورت on the fly این کارو انجام می دهد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشه خیلی اهمیت داره.
 
ما در این پست به آموزش نحوه نصب Nginx نمیپردازیم. در این آموزش ما نحوه تنظیمات و پیکربندی وب سرور nginx برای بازده ایه سرعت و پاسخ دهی بیشتر میپردازیم
 

توجه داشته باشید این آموزشی در نسخه های ۱٫۶ و ۱٫۷ تست شده است.

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

sudo nano /etc/nginx/nginx.conf

پس از وارد کردن دستور زیر به دنبال مقادیر دو خط زیر بگردید که بترتیب به صورت پیشفرض ۱ و ۱۰۲۴ میباشد.

این ۲ مقدار میتوان گفت مهمترین بخشاز تنظیمات این وب سرور میباشد  و درصورت تنظیم صحیح نتیجه ای ایده ال خواهد داشت:

worker_processes 1;
worker_connections 1024;

عبارت worker_connections به معنی توانایی میزبانی افراد/ثانیه است که در اینجا ۱۰۲۴نفر در ثانیه داریم.

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

grep processor /proc/cpuinfo | wc -l

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

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

ulimit -n

Buffers

یکی دیگر از مهمترین بخش ها برای کانفیگ nginx بخش buffers میباشد.

و اگر اندازه آن پایین باشد nginx مجبور به نوشتن temporary file میشودکه نتیجه افزایش استفاده از هاردیسک و read and write مداوم است.

اکنون قبل از تغییر این مقادر میبایستی با موارد زیر آشنا شوید:

client_body_buffer_size: یک client buffer size به معنی ارسال اکشن POST برای وب سرور است(اکشن POST به صورت مدارم ارسال میشود.)

client_header_buffer_size:مانند قبلی با این تقاوت که client header size است و بهترین مقدار آن ،‌ ۱K میباشد.

client_max_body_size: تعیین کننده بیشتر حجم درخواست کاربر به سرور است. در صورتی که درخواست بیش از حد Max باشد عبارت ۴۱۳ error یا Request Entity Too Large را به کاربر نشان میدهد.

large_client_header_buffers:همانطور که از نامش پیداست به معنی حداکثر اندازه Buffer ها برای large client headers است.

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;

برای خرید سرور مجازی با کانفیگ رایگان دایرکت ادمین و NGinx کلیک کنید

Timeouts

مقدار ها client_body_timeout و client_header_timeout مهمترین این بخش هستند(به زبان ساده کارشان این است که مسئول داکثر زمان برای منتظر ماندن برای درخواست کاربر هستند و در صورتی که با Timeout مواجه شوند عبارت ۴۰۸ error یا Request time out به کاربر نشان میدهند.)

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

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

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

فشرده سازی GZip

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

gzip             on;
gzip_comp_level  2;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/xml text/css application/xml;
Static File Caching
 
به کمک این بخش قادرید تاریخ انتقضای برای فایل ها که اکثر مواقع در سرور تغییر نمیکنند تعیینکنید:
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}

پسوند مورد نظر را در خط بالا مانند jps , css , js اضافه کنید.

عملیات Log برداری:

درصورتی که به این قسمت نیازی ندارید میتوانید با تغییر دستور زیر این عملیات را غیرفعال کنید:

access_log off;

اکنون تغییرات را ذخیره و دستور زیر را وارد سپس تغییرات را مشاهده کنید!!

sudo service nginx restart

امیدوارم این آموزش مفید واقع شده باشد.

اولین نفری باشید که از آموزشها و تخفیفهای ویژه با خبر میشوید 😉
با عضویت در خبرنامه از 80 درصد تخفیف بهره مند شوید

4.9/5 - (27 امتیاز)