เมื่อคุณพัฒนา Node.js Application เสร็จแล้ว การเปิดให้ผู้ใช้งานเข้าถึงผ่าน Internet อย่างปลอดภัยและมีประสิทธิภาพเป็นขั้นตอนที่สำคัญมาก การใช้ Reverse Proxy เข้ามาช่วยจัดการ traffic เป็นแนวทางมาตรฐานที่ใช้กันใน Production โดยเฉพาะการใช้ Nginx ซึ่งมีประสิทธิภาพสูง รองรับ concurrent connections จำนวนมาก และสามารถทำ SSL, Load Balancing ได้
บทความนี้แนะนำการตั้งค่า Nginx เป็น Reverse Proxy ให้ Node.js Server แบบ Step-by-Step พร้อมใช้งานจริง

พื้นฐานที่ต้องมี
- Ubuntu Server 25.10
- ติดตั้ง Node.js และมีแอปรันที่ port เช่น
3000 - มีสิทธิ์ sudo
- เปิด port 80 แล้ว
ขั้นตอนที่ 1 ติดตั้ง Nginx
ตรวจสอบสถานะ
ขั้นตอนที่ 2 ทดสอบ Nginx
เปิด browser
ถ้าเห็นหน้า Welcome ของ Nginx แสดงว่าพร้อมใช้งานแล้ว
ขั้นตอนที่ 3 สร้าง Reverse Proxy Config
– ไปที่ directory config
– สร้างไฟล์ใหม่
ตัวอย่าง Config Reverse Proxy
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
อธิบาย
proxy_pass→ ชี้ไปยัง Node.js appUpgrade→ รองรับ WebSocketHost→ ส่ง header เดิมไป backend
ขั้นตอนที่ 4 Enable Site
ปิด Default Config (ป้องกันชนกัน)
ขั้นตอนที่ 5: ตรวจสอบ Config
test is successful
ขั้นตอนที่ 6 Restart Nginx
ขั้นตอนที่ 7 ทดสอบ Reverse Proxy
-เปิด
(Advanced) เพิ่ม HTTPS ด้วย Let’s Encrypt
– ติดตั้ง Certbot
⚠️ ข้อควรระวัง
- อย่า expose port 3000 โดยตรงใน production
- ใช้ firewall จำกัด access
- ใช้ process manager เช่น PM2
- ตรวจสอบ log
📊 ภาพรวมการทำงาน
📌 สรุป
การใช้ Nginx เป็น Reverse Proxy สำหรับ Node.js เป็นแนวทางมาตรฐานที่ช่วยเพิ่มทั้ง ความปลอดภัย ประสิทธิภาพ และความยืดหยุ่นของระบบ โดยผู้ใช้จะเชื่อมต่อผ่าน Nginx (port 80/443) แทนที่จะเข้าถึง Node.js โดยตรง ทำให้สามารถจัดการ SSL, Load balancing และ Security ได้ง่ายขึ้น
เมื่อคุณตั้งค่าเสร็จแล้ว ระบบของคุณจะพร้อมสำหรับการใช้งานจริงในระดับ Production และสามารถต่อยอดไปสู่การทำ High Availability หรือ Microservices ได้ทันที
ที่มา:
– https://medium.com/%409ovind/what-is-a-web-server-and-role-of-nginx-in-it-09dfcbd5ed26
– https://tamerlan.dev/how-to-set-up-nginx-load-balancing-a-step-by-step-guide
– https://iainramsey.com/how_its_made




