Reverse Proxy چطور امنیت، SSL و مقیاس‌پذیری اپلیکیشن شما را بهتر می‌کند؟ آموزش تنظیم Nginx به‌عنوان Reverse Proxy.

Nginx Reverse Proxy چیست و چه کاربردی دارد؟

Reverse Proxy یکی از مفاهیم کلیدی معماری وب‌سرورهای مدرن است؛ Nginx به‌عنوان یک لایه واسط بین کاربر و اپلیکیشن واقعی شما (که می‌تواند Node.js، PHP-FPM، یا هر سرویس دیگری باشد) قرار می‌گیرد و درخواست‌ها را به‌جای اپلیکیشن دریافت و مدیریت می‌کند.

Reverse Proxy چه کاری انجام می‌دهد؟

به‌جای اینکه اپلیکیشن Node.js یا هر سرویس دیگری مستقیم روی پورت ۸۰/۴۴۳ در معرض اینترنت باشد، Nginx این درخواست‌ها را می‌گیرد و به پورت داخلی اپلیکیشن (مثلاً ۳۰۰۰) هدایت می‌کند.

چرا از Reverse Proxy استفاده کنیم؟

  • مدیریت متمرکز SSL: گواهی HTTPS را فقط روی Nginx نصب می‌کنید؛ اپلیکیشن پشتی نیازی به مدیریت گواهی ندارد.
  • امنیت بیشتر: اپلیکیشن اصلی مستقیم در معرض اینترنت نیست؛ Nginx می‌تواند به‌عنوان لایه فیلترینگ اولیه عمل کند.
  • میزبانی چند سایت روی یک سرور: با یک IP، می‌توانید چند دامنه را به چند اپلیکیشن مختلف (روی پورت‌های داخلی متفاوت) هدایت کنید.
  • Load Balancing: Nginx می‌تواند ترافیک را بین چند نسخه از اپلیکیشن (برای مقیاس‌پذیری) توزیع کند.
  • کش و فشرده‌سازی: Nginx می‌تواند پاسخ‌ها را کش کند و حجم انتقال داده را کاهش دهد.

نمونه تنظیمات Reverse Proxy

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        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_set_header اطمینان می‌دهند اپلیکیشن پشتی، آی‌پی واقعی کاربر و پروتکل اصلی درخواست را (نه آی‌پی داخلی Nginx) دریافت کند — بدون این تنظیمات، لاگ‌های اپلیکیشن شما همیشه یک آی‌پی محلی نشان می‌دهند.

بعد از تنظیم Reverse Proxy، مرحله بعدی معمولاً فعال‌سازی SSL با Certbot است.