صبر کنید...
مرکز آموزش میلاد سرور

راه‌اندازی Reverse Proxy برای Node.js با Nginx

تصویر آموزشی راه‌اندازی Reverse Proxy برای Node.js با Nginx
راهنمای تصویری و مرحله‌به‌مرحله میلاد سرور

اپلیکیشن Node را روی پورت داخلی اجرا کنید و با Nginx به دامنه و SSL وصل کنید.

آخرین به‌روزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی

در این آموزش چه یاد می‌گیرید؟
  • راه‌اندازی Reverse Proxy برای Node.js با Nginx
  • اپلیکیشن را روی پورت داخلی اجرا کنید
  • لاگ و healthcheck را بررسی کنید

چرا این موضوع مهم است؟

موضوع Nginx یکی از پایه‌های نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفه‌جویی در زمان پشتیبانی می‌شود.

این راهنما با فرض دسترسی مدیریتی (root یا sudo) نوشته شده و مراحل آن روی یک سرور تازه آزمایش شده است.

پیش‌نیازها

  • دسترسی SSH با کاربر root یا کاربر دارای sudo
  • Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیع‌های مشابه)
  • نسخه پشتیبان از فایل‌ها و دیتابیس‌های مهم

راهنمای گام‌به‌گام

گام 1 — اپلیکیشن را روی پورت داخلی اجرا کنید

اپلیکیشن را روی پورت داخلی اجرا کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.

گام 2 — سرویس systemd برای آن بسازید

سرویس systemd برای آن بسازید. این کار را در بازه کم‌ترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.

گام 3 — در Nginx بلوک proxy_pass اضافه کنید

در Nginx بلوک proxy_pass اضافه کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.

گام 4 — هدرهای X-Forwarded را تنظیم کنید

هدرهای X-Forwarded را تنظیم کنید. پس از اجرا، وضعیت سرویس و لاگ‌ها را کنترل کنید؛ تغییر بدون بررسی می‌تواند خطای پنهان ایجاد کند.

گام 5 — SSL و ریدایرکت را فعال کنید

SSL و ریدایرکت را فعال کنید. اگر روی چند سرور کار می‌کنید، این مورد را یک‌بار روی محیط تست اجرا و سپس روی تولید اعمال کنید.

گام 6 — لاگ و healthcheck را بررسی کنید

لاگ و healthcheck را بررسی کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیش‌فرض پرهیز کنید.

نمودار مراحل راه‌اندازی Reverse Proxy برای Node.js با Nginx
شش گام اصلی این آموزش در یک نگاه

نمونه دستورها

نمونه دستورهای راه‌اندازی Reverse Proxy برای Node.js با Nginx
دستورهای پیشنهادی؛ مقادیر نمونه را با اطلاعات سرور خود جایگزین کنید.
location / {
  proxy_pass http://127.0.0.1:3000;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

نکات امنیتی و بهینه‌سازی

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

خطاهای رایج و راه‌حل

  • قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
  • خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راه‌حل نیست.
  • قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
نکته طلایی: پورت داخلی برنامه را با فایروال عمومی نکنید؛ فقط Nginx باید به آن دسترسی داشته باشد.

سؤالات متداول

چرا برنامه به دامنه وصل نمی‌شود؟

proxy_pass یا server_name اشتباه است؛ خطای Nginx را در error.log ببینید.

برای WebSocket چه تنظیمی لازم است؟

هدرهای Upgrade و Connection و تنظیم proxy_read_timeout.

سرور مناسب نیازتان را انتخاب کنید

میلاد سرور پلن‌های اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آی‌پی اختصاصی و قیمت شفاف ارائه می‌کند. برای مقایسه همه کشورها فهرست کامل سرورهای بین‌الملل را ببینید.

جمع‌بندی

با رعایت این مراحل، سرویس شما پایدارتر و امن‌تر خواهد بود؛ اما پایش منظم را فراموش نکنید.

این آموزش برای شما مفید بود؟نظر شما به بهتر شدن آموزش‌ها کمک می‌کند.
اشتراک‌گذاری:تلگرامواتساپX