กลับไปหน้าบล็อก
พฤษภาคม 23, 2026คู่มือ

วิธีตั้งค่า Nginx Reverse Proxy

Proxy Node.js, Docker หรือแอปอื่นๆ ผ่าน Nginx พร้อมรองรับ WebSocket และ SSL บน VPS

วิธีตั้งค่า Nginx Reverse Proxy

Reverse proxy ให้ Nginx รับ traffic HTTP/HTTPS สาธารณะและส่งต่อไปยัง backend apps (Node.js บนพอร์ต 3000, Docker containers, Python APIs) จำเป็นสำหรับ deployment production บน VPS Hiddence

ข้อกำหนดเบื้องต้น

  • ติดตั้งและรัน Nginx แล้ว
  • Backend app ฟังที่ localhost (เช่น 127.0.0.1:3000)
  • โดเมนชี้ไปยัง VPS (สำหรับ SSL)
  • เปิดพอร์ต 80 และ 443 ใน firewall

การตั้งค่า reverse proxy พื้นฐาน

สร้าง config ไซต์สำหรับโดเมนของคุณ:

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, dashboard หลายตัว และแอป realtime:

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 สำหรับ streaming/SSE หากจำเป็น
  • ตั้ง client_max_body_size สำหรับอัปโหลดไฟล์
  • รัน backend หลายตัวบน subdomain ต่างกัน
  • ใช้ upstream blocks สำหรับ load balancing backend หลายตัว
  • ตรวจสอบ error.log หากได้ 502 Bad Gateway