آموزش بسیار کامل Nginx در تولید: از نصب تا امنیت، کشینگ و تحمل ترافیک سنگین

۱۴۰۵/۰۸/۱۳ | چهارشنبه، ۱۳ آبان
دوره آموزشی ویژه 4 اپیزود اول تمام دوره های آموزشی ویدیویی رایگان میباشد دانلود رایگان

دورهٔ جامع CSS از صفر

آموزش CSS از صفر در ۲۲ ویدیو: مدل جعبه، انتخاب‌گر، فلکس‌باکس، گرید، واکنش‌گرایی، متغیرها، انیمیشن و معماری، تا پروژهٔ کامل صفحهٔ محصول؛ کد کنار خروجی ...

مدرس دوره : تیم 22 اپیزود ویدیویی 03 ساعت و 33 دقیقه و 59 ثانیه آموزش ویدیویی
متن پرونده شماره 324 - سرور
محصول اورجینال INZIP
قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

دانلود پوسته وردپرس باریستا؛ قالب کافیشاپ، رُستری قهوه و فروشگاه قهوه دوزبانه با منوی رومیزی، رزرو آنلاین میز با کد پیامکی و ووکامرس. طراحی اختصاصی inzip.ir

تحویل آنی آپدیت رایگان بدون قفل لایسنس پشتیبانی واقعی
۳,۹۹۰,۰۰۰ تومان ۲,۹۶۰,۰۰۰ تومان
بازدید و دانلود آنی
٪۲۶
تخفیف ویژه
سود شما
۱,۰۳۰,۰۰۰ تومان

چرا Nginx ستون اصلی ورودی ترافیک در بسیاری از سرویس ها است؟

Nginx یک وب سرور ساده نیست. در زیرساخت های حرفه ای، Nginx نقش دروازه اصلی درخواست ها را بازی می کند: پایان دهی TLS، مسیریابی، توزیع بار، کش استاتیک، محدودسازی نرخ، و ثبت لاگ تحلیلی. معماری Event Driven آن باعث می شود با مصرف منابع کمتر، تعداد اتصال همزمان بیشتری مدیریت شود. همین ویژگی Nginx را برای سرویس های پرترافیک بسیار مناسب کرده است.

این راهنما از صفر تا سطح عملیاتی پیشرفته طراحی شده است. ابتدا نصب و ساختار فایل ها را مرور می کنیم، سپس Reverse Proxy، لودبالانس، کش، امنیت، و مانیتورینگ را با جزئیات بررسی می کنیم.

۱) نصب اصولی و آماده سازی سرویس

sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
sudo nginx -v

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

۲) ساختار پیکربندی قابل نگهداری

یک اشتباه رایج این است که همه تنظیمات در یک فایل بزرگ نوشته شود. در روش حرفه ای، هر دامنه یا سرویس فایل مستقل دارد، تنظیمات مشترک در include های جداگانه قرار می گیرد و هر تغییر قبل از اعمال در مخزن نسخه ها ثبت می شود.

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

پس از هر تغییر، تست نحوی اجباری است:

sudo nginx -t
sudo systemctl reload nginx

Reload باعث می شود بدون قطع اتصال فعال، تنظیمات جدید اعمال شود. این موضوع برای سامانه های زنده بسیار مهم است.

۳) Reverse Proxy استاندارد برای API

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

server {
    listen 443 ssl http2;
    server_name api.example.com;

    ssl_certificate /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 60s;
    }
}

برای WebSocket باید هدرهای Upgrade و Connection نیز اضافه شود تا ارتباط پایدار بماند.

۴) لودبالانس و تحمل خطا

وقتی چند نود برنامه دارید، Nginx می تواند ترافیک را توزیع کند. الگوریتم Round Robin پیش فرض است، اما برای سناریوهای خاص می توان روش های دیگری مانند Least Connections را انتخاب کرد. Health Check و Timeout مناسب باعث می شود نود ناسالم سریع از چرخه خارج شود.

upstream app_cluster {
    server 10.0.0.11:3000;
    server 10.0.0.12:3000;
    server 10.0.0.13:3000;
}

location / {
    proxy_pass http://app_cluster;
}

در سرویس های حساس، بهتر است استراتژی Failover تعریف شود تا در صورت قطعی بخشی از زیرساخت، پاسخ دهی ادامه پیدا کند.

۵) کشینگ هوشمند

کش درست، بار برنامه را کاهش می دهد و سرعت پاسخ را بالا می برد. اما کش باید کنترل شده باشد تا داده منقضی یا ناسازگار نمایش داده نشود. برای فایل های استاتیک TTL بلند مناسب است، ولی برای محتوای پویا TTL کوتاه یا Micro Cache با احتیاط استفاده می شود.

استفاده از هدرهای Cache-Control، ETag و Last-Modified به مرورگر و CDN کمک می کند مصرف پهنای باند کاهش یابد.

۶) امنیت پیشرفته Nginx

امنیت شامل چند لایه است: TLS امن، هدرهای محافظتی، محدودسازی نرخ و مسدودسازی الگوهای مخرب. نسخه های ضعیف TLS باید غیرفعال شوند و Cipherهای قوی فعال باشند. هدرهای امنیتی نیز از برخی حملات سمت کاربر جلوگیری می کنند.

add_header X-Frame-Options SAMEORIGIN always;
add_header X-Content-Type-Options nosniff always;
add_header Referrer-Policy strict-origin-when-cross-origin always;

limit_req_zone $binary_remote_addr zone=api_zone:10m rate=25r/s;
location /api/ {
    limit_req zone=api_zone burst=50 nodelay;
    proxy_pass http://app_cluster;
}

این رویکرد جلوی بخشی از حملات خودکار و فشار ترافیک مخرب را می گیرد و کیفیت تجربه کاربران واقعی را حفظ می کند.

۷) بهینه سازی عملکرد

تنظیمات عملکرد باید براساس بار واقعی تنظیم شوند. پارامترهای worker_processes، worker_connections، keepalive_timeout، client_max_body_size و gzip نقش مهمی دارند. همچنین اندازه بافرها و زمان های انتظار proxy باید متناسب با رفتار برنامه انتخاب شوند.

در پروژه های بزرگ، تست بار پیش از اعمال تغییرات ضروری است. هر تنظیم جدید باید با سناریوی واقعی مقایسه شود تا تاثیر آن دقیق سنجیده شود.

۸) دیاگرام جریان درخواست در Nginx

Browser Nginx Edge Static Cache App Node A App Node B Database Log Monitor

۹) مانیتورینگ و نگهداری روزمره

برای پایداری واقعی، صرفا بالا بودن سرویس کافی نیست. باید نرخ خطا، زمان پاسخ، حجم ترافیک، نسبت Cache Hit، وضعیت گواهی TLS و الگوی درخواست های مشکوک به طور مداوم پایش شود. اگر Error Log رشد غیرعادی داشته باشد یا p95 زمان پاسخ افزایش یابد، باید قبل از قطعی اقدام اصلاحی انجام شود.

نگهداری دوره ای شامل پاکسازی پیکربندی های بلااستفاده، تمدید گواهی، بازبینی سیاست امنیتی و تست بازیابی تنظیمات است.

۱۰) چک لیست عملیاتی قبل از انتشار

  • تست نحوی کامل پیکربندی
  • اعتبار TLS و زنجیره گواهی
  • عملکرد مسیرهای کلیدی API
  • درستی هدرهای امنیتی
  • تست بار کوتاه و مقایسه با نسخه قبلی
  • قابلیت Rollback در صورت خطای پیش بینی نشده

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

جمع بندی

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

برچسب‌های این مقاله
  • Nginx
  • Reverse Proxy
  • امنیت وب سرور
  • کشینگ
  • لودبالانس
  • بهینه سازی عملکرد
٪۴۱
دوره اختصاصی INZIP

دورهٔ جامع HTML از صفر

آموزش حرفه ای HTML از صفر در ۱۶ ویدیو: سند، متن، لینک، تصویر، جدول، فرم، معنایی‌سازی، دسترس‌پذیری و سئو، تا پروژهٔ کامل صفحهٔ فروشگاه محصول.

تماشای آنلاین + دانلود دسترسی آنی و همیشگی به‌روزرسانی رایگان کیفیت Full HD
۹۹۰,۰۰۰ تومان ۵۹۰,۰۰۰ تومان سود شما ۴۰۰,۰۰۰ تومان
مشاهده سریال