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

3 گام سریع برای بهینه سازی عملکرد سرور NGINX

3 گام سریع برای بهینه سازی عملکرد سرور NGINX

جهانی شما می توانید آن را بهینه سازی کنید تا بتوانید عملکرد بالایی را به دست آورید.

من سه راه سریع برای اینکار دارم. اگر چه اینها نباید یک مجموعه قطعی در نظر گرفته شوند (به عنوان مواردی که همیشه می توانید برای بهینه سازی بیشتر انجام دهید)، این سه نکته سریع را پیدا خواهید کرد تا NGINX سرور شما را افزایش دهد.

با گفتن این جمله، با راهنمایی ها

1. بالا بردن فرآیند و اتصالات کارگر

دو تنظیم وجود دارد که می تواند نتایج شما را به شما نشان دهد:

  • worker_processes – مسئولیت اجازه دادن به NGINX را می دهد که بسیاری از کارگران را بشناسد.
  • worker_connections – به کارگر می گوید که چگونه بسیاری از IP های منحصر به فرد به طور همزمان توسط NGINX ارائه می شوند.

اینها هر دو در /etc/nginx/nginx.conf یافت می شوند . این فایل را برای ویرایش با فرمان باز کنید:

sudo nano /etc/nginx/nginx.conf

از جعبه، worker_process به صورت خودکار تنظیم شده است. شما می توانید آن را کمی کارآمدتر، اما آن بستگی دارد که چه تعداد هسته CPU سرور شما دارد. بهترین راه این است که کارگر را به 1 تنظیم کنید. با این حال، اگر نصب NGINX در حال انجام کار با پردازشگرهای CPU (مانند SSL یا فشرده سازی gzip) باشد، سرور شما دارای هسته های چند هسته ای است، شما می توانید آن را تغییر دهید. برای پیدا کردن چند هسته ای که سرور شما دارد، دستور را صادر کنید:

پردازشگر grep / proc / cpuinfo | wc -l

خروجی آن فرمان ( شکل A ) به شما می گوید که چند هسته در سرور شما موجود است.

شکل A

3 گام سریع برای بهینه سازی عملکرد سرور NGINX

3 گام سریع برای بهینه سازی عملکرد سرور NGINX

اگر می دانید NGINX نیازمند مقدار زیادی از اسب بخار است، مجموعه worker_processes را به همان مقدار هسته ها بر روی سرور خود تنظیم کنید. در غیر این صورت، آن را به 1 تنظیم کنید.

همانطور که برای worker_connections، شما باید در مورد این فکر کنید: حداکثر تعداد مشتریان که NGINX می تواند اداره کند، محاسبه می شود:

worker_processes * worker_connections = مشتریان حداکثر

بنابراین اگر شما worker_process را به 1 و worker_connections به 512 تنظیم کنید، فقط می توانید 512 مشتری را خدمت کنید. اگر شما worker_process را به 2 و worker_connections به 512 تنظیم کنید، می توانید 1024 مشتری را به سرور منتقل کنید. این یک ریاضی نسبتا ساده است که بتوان آنرا کشف کرد. مقدار پیش فرض برای worker_connections 768 است، اما پیشنهاد می کنم تنظیمات worker_connections به 1024 باشد. این مقادیر مانند ( /etc/nginx/nginx.conf ) ظاهر می شود:

worker_processes = 1
worker_connections = 1024

مقادیر بالا را با توجه به نیازهای خود تنظیم کنید.

2. اندازه های بافر

یکی دیگر از بهینه سازی بسیار مهم در راه اندازه های بافر است. اینها همچنین در فایل/etc/nginx/nginx.conf پیکربندی شده اند ، اما باید در یک مکان خاص قرار داده شوند.چهار دستورالعمل وجود دارد:

  • client_body_buffer_size – اندازه بافر مشتری (اقدامات POST، مانند ارسال فرم) را به NGINX منتقل می کند.
  • client_header_buffer_size – اندازه سربرگ سرویس گیرنده بدون دست.
  • client_max_body_size – حداکثر اندازه مجاز برای یک درخواست مشتری.
  • large_client_header_buffers – حداکثر تعداد بافر برای هدرهای بزرگ مشتری.

باز هم این بسته به نیاز شما متفاوت خواهد بود. با این حال، اگر فایل پیکربندی NGINX را باز کنید و در زیر بخش http {} زیر را قرار دهید ، باید خوب باشید:

client_body_buffer_size 10K؛
client_header_buffer_size 1k؛
اندازه client_max_body_sm 8m؛
big_client_header_buffers 4 4k؛

باز هم، اگر نیازهای بزرگتری دارید، می توانید این ارزش ها را افزایش دهید.

3. زمان وقوع

بعد ما قصد داریم به یک دستورالعمل نگاه کنیم که می تواند عملکرد سرور NGINX شما را به طور جدی افزایش دهد. دو دستورالعمل مربوط به آن وجود دارد که مسئولیت زمانی که یک سرور برای یک بدن مشتری یا یک هکر سرویس دهنده پس از یک درخواست منتظر می ماند. این دو دستورالعمل عبارتند از:

  • client_body_timeout
  • client_header_timeout

دو دستور دیگر دیگر نیز وجود دارد:

  • keepalive_timeout – مقدار زمان باقیمانده را برای اتصالات زنده با مشتری تعیین می کند.
  • send_timeout – زمان وقوع برای ارسال یک پاسخ به مشتری تعیین می کند.

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

client_body_timeout 12؛
client_header_timeout 12؛
keepalive_timeout 15؛
send_timeout 10؛

فایل پیکربندی NGINX را ذخیره و بسته کنید. راه اندازی مجدد سرور وب با دستور sudo systemctl restart nginx . شما اکنون باید یک پیشرفت قابل توجه در عملکرد NGINX را ببینید.

خیلی بیشتر برای انجام دادن

NGINX گزینه های بسیار خوبی برای کمک به بهینه سازی سرور شما ارائه می دهد، اما این سه نکته عمومی باید برای بهبود عملکرد اساسی طولانی باشد. ما دوباره به این موضوع می رویم تا عملکرد بیشتری از این سرور به دست آوریم.

این صفحه چطور بود؟ post