العودة إلى المدونة
مايو 23, 2026الأدلة

كيفية إعداد Nginx كوكيل عكسي

تمرير Node.js وDocker وتطبيقات أخرى عبر Nginx مع دعم WebSocket وSSL على VPS.

كيفية إعداد Nginx كوكيل عكسي

الوكيل العكسي يجعل Nginx يستقبل حركة HTTP/HTTPS العامة ويمرّرها للتطبيقات الخلفية (Node.js على المنفذ 3000، حاويات Docker، واجهات Python). ضروري للنشر الإنتاجي على VPS من Hiddence.

المتطلبات

  • Nginx مثبت ويعمل
  • التطبيق الخلفي يستمع على localhost (مثلاً 127.0.0.1:3000)
  • النطاق يشير إلى VPS (لـ SSL)
  • المنافذ 80 و443 مفتوحة في الجدار الناري

إعداد وكيل عكسي أساسي

أنشئ إعداد موقع لنطاقك:

bash
server {
    listen 80;
    server_name app.yourdomain.com;

    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;
    }
}

sudo nginx -t && sudo systemctl reload nginx

دعم WebSocket

مطلوب لـ Socket.io ولوحات كثيرة وتطبيقات فورية:

bash
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}

إضافة HTTPS عبر Certbot

بعد عمل HTTP، أصدر شهادة مجانية:

bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com

# Certbot will update your server block for SSL automatically

نصائح

  • استخدم proxy_buffering off للبث/SSE عند الحاجة
  • اضبط client_max_body_size لرفع الملفات
  • شغّل عدة خلفيات على نطاقات فرعية مختلفة
  • استخدم كتل upstream لموازنة الحمل
  • عند 502 Bad Gateway راجع error.log