نحوه بهینه سازی سرعت وب سایت با استفاده از nginx
06 دسامبر 2022
خواندن 1 دقیقه
مهشاد قره پاشا

نحوه بهینه سازی سرعت وب سایت با استفاده از nginx

5/5 - (2 امتیاز)

ممکن است این سوال برایتان پیش آید که چطور می توانیم سرعت وب سایت را افزایش دهیم. پس تا آخر این مقاله با ما همراه باشید. Nginx یک وب سرور سریع، سبک و با کارآیی بالا است که می تواند به حداقل 40% از وب سایت های جهان سرویس دهی انجام دهد. در مقایسه با سایر وب سرور ها Nginx به دلیل داشتن سرعت زیاد و قابلیت مدیریت هزاران اتصال هم زمان، بین کاربران محبوب است. علاوه بر این Nginx می تواند به عنوان متعادل کننده بار، یک پروکسی معکوس و یک سرور ذخیره سازی HTTP استفاده شود.

این وب سرور دارای یک کش داخلی است که برای بهبود عملکرد، به در خواست های داینامیک اجازه می دهد تا برای درخواست های بعدی مستقیما روی سرور ذخیره شوند. در نتیجه، بار روی CPU و سیستم شما به طور کلی کاهش پیدا می کند.

آموزش بهینه سازی سرعت وب سایت ها با Nginx 

پس از معرفی وب سرور Nginx، اکنون می خواهیم در ادامه چگونگی افزایش سرعت وب سایت ها را با استفاده از Nginx آموزش دهیم.

فعال کردن فشرده سازی Gzip روی Nginx

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

nano /etc/nginx/sites-enabled/your-domain.conf

سطرهای زیر را در بخش http اضافه کنید:

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

حال فایل را ذخیره کنید و سپس سرویس Nginx را مجددا راه اندازی کنید.

systemctl restart nginx

در مرحله بعد، می توانید فشرده سازی Gzip را با دستور زیر تأیید کنید.

curl -I -H 'Accept-Encoding: gzip' http://your-domain.com/

اگر فشرده سازی Gzip فعال باشد، باید «Content-Encoding: gzip» را در خروجی زیر ببینید.

HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Tue, 01 Sep 2020 07:54:04 GMT
Content-Type: text/html
Last-Modified: Tue, 04 Mar 2014 11:46:45 GMT
Connection: keep-alive
Content-Encoding: gzip

فعال کردن پشتیبانی HTTP/2

به طور پیش فرض، Nginx برای استفاده از پروتکل HTTP/1 پیکربندی شده است. در مقایسه با HTTP/1، پروتکل HTTP/2 مزایای زیادی دارد. HTTP/2 به مرورگر وب این اجازه را می دهد تا فایل را به صورت parallel دانلود کند. توجه داشته باشید که قبل از فعال کردن HTTP/2 در Nginx، لازم است که HTTPS را روی سرور خود فعال کنید، چون اکثر مرورگر ها HTTP/2 را فقط با HTTPS مجاز می کنند. شما می توانید HTTP/2 با ویرایش فایل پیکربندی میزبان مجازی Nginx، فعال کنید. شما می توانید این فعال سازی را با دستورات زیر انجام دهید.

nano /etc/nginx/sites-enabled/your-domain.conf

حال خط زیر را پیدا کنید.

listen 443 ssl;

در این مرحله خط قبلی را با خط زیر جایگزین کنید.

listen 443 ssl http2;

پس از انجام مراحل قبلی، فایل را بعد از ذخیره کردن ببندید. حال سرویس Nginx را مجدد راه اندازی کنید تا تغییرات اعمال شود.

systemctl restart nginx

پروتکل HTTP/2 را با استفاده از دستور زیر تایید کنید.

curl -I https://your-domain.com

پس از اجرا باید خروجی زیر نمایش داده شود.

HTTP/2 200
server: nginx
date: Tue, 01 Sep 2020 08:19:13 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
x-powered-by: your-domain.com

پیکربندی Worker Processes برای بهبود سرعت 

worker Processes حداکثر تعداد اتصالاتی است که در هر فرآیند اتصال می تواند به طور همزمان انجام دهد را تعریف می کند، و به طور پیش فرض این عدد روی 768 تنظیم شده است. توصیه می شود که این مقدار را معادل با توصیف گر فایل باز تنظیم کنید. شما می توانید با استفاده از دستور زیر می توانید تعداد توصیف گر های فایل باز را پیدا کنید.

ulimit -n 

خروجی به صورت زیر است.

1024

این مقدار را می توانید با ویرایش فایل اصلی پیکربندی Nginx، در پیکربندی سیستم خود تنظیم کنید. 

nano /etc/nginx/nginx.conf

خطوط زیر را تغییر دهید.

events {
worker_connections 1024;
}

فایل را ذخیره کنید و سپس Nginx را مجدد راه اندازی کنید تا تغییرات اعمال شود. 

پیکربندی اندازه بافر ها 

بافر ها نقش مهمی در افزایش عملکرد وب سرور Nginx دارند. با بافر ها می توانیم سریع ترین پاسخ را از سرور پروکسی دریافت کنیم و آن را در بافر های تنظیم شده توسط دستورالعمل های proxy_buffer_size و proxy_buffers ذخیره کنیم. توجه کنید که اندازه بافر به طور پیش فرض برابر با یک صفحه حافظه است. 

شما می توانید بافر را با ویرایش فایل پیکربندی میزبان مجازی Nginx تنظیم کنید. 

nano /etc/nginx/sites-enabled/your-domain.conf

خطوط زیر را در بلوک سرور “http {” اضافه کنید. 

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

فایل را ذخیره کنید و ببندید و سپس Nginx را مجدد راه اندازی کنید. 

پیکربندی Timeout

دستورات timeout برای زمانی استفاده می شود که یک سرور منتظر بماند تا بادی کلاینت یا هدر کلاینت پس از درخواست ارسال شود. در صورت تاخیر، Nginx یک خطای HTTP 408 Request timeout را نشان می دهد. این کار سرور شما را به مدت طولانی از مدیریت اتصالات آزاد می کند. 

شما می توانید با ویرایش فایل پیکربندی میزبان مجازی Nginx آن را تنظیم کنید. 

nano /etc/nginx/sites-enabled/your-domain.conf

خطوط زیر را در بلوک سرور “http {” اضافه کنید. 

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

فایل را پس از ذخیره کردن ببندید. حال، Nginx را مجدد راه اندازی کنید تا تغییرات اعمال شود. 

نتیجه گیری 

افزایش سرعت وب سایت ممکن است دغدغه بسیاری از شما عزیزان باشد. ما در این بخش راهی موثر پیش روی شما قرار دادیم، که آن استفاده از Nginx است. ما در این مقاله افزایش سرعت وب سایت را با استفاده از Nginx مورد مطالعه قرار دادیم. با انجام دادن مراحل توضیح داده شده در متن مقاله، می توانید سرعت وب سایت خود را افزایش دهید. امیدواریم مطالب فوق برای شما مفید واقع شده باشد. از همراهی شما سپاس گذاریم. 

لینک کوتاه مقاله
https://azarsys.com/?p=10505


نویسنده مقاله
مقالات مرتبط
دیدگاه بگذارید