Nginx چیست؟
وبسرور و Reverse Proxy پرسرعت و سبک که برای Load Balancing، سرو فایل استاتیک و مدیریت SSL جلوی برنامههای Backend قرار میگیرد.
چرا مهم است؟
Nginx معمولاً لایه اول هر معماری وب Production است — قبل از رسیدن ترافیک به برنامه داتنت/Node، Nginx مسیریابی، فشردهسازی، SSL و توزیع بار را انجام میدهد.
تعریف
Nginx یک وبسرور و Reverse Proxy رویدادمحور (Event-Driven) است که برخلاف سرورهای سنتی Thread-per-Request، با تعداد کمی Worker Process هزاران اتصال همزمان را مدیریت میکند.
مثال: Reverse Proxy جلوی یک برنامه داتنت
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
کاربردهای اصلی
- Reverse Proxy: پنهانکردن پورت داخلی برنامه و مسیریابی ترافیک به آن.
- Load Balancing: توزیع درخواست بین چند نمونه (Instance) از برنامه.
- سرو فایل استاتیک و SSL Termination: رمزگشایی HTTPS در Nginx، ترافیک داخلی به برنامه ساده HTTP.
اشتباه رایج
❌ فراموشکردن هدر X-Forwarded-For/X-Forwarded-Proto هنگام Proxy — بدون آن، برنامه Backend آدرس IP واقعی کاربر یا پروتکل اصلی (https) را نمیبیند و لاگ/Redirectها اشتباه میشوند.
منبع و مطالعه بیشتر
خلاصه
Nginx بهعنوان Reverse Proxy جلوی برنامه Backend قرار میگیرد و SSL/Load Balancing/فایل استاتیک را مدیریت میکند. هنگام Proxy همیشه هدرهای X-Forwarded را ست کنید. مرجع کامل: مستندات رسمی Nginx و راهنمای دیپلوی ASP.NET Core پشت Nginx در Microsoft Learn.
