Home » Load Balancer คู่มือ HAProxy Nginx สำหรับองค์กร
Load Balancer คู่มือ HAProxy Nginx สำหรับองค์กร
Load Balancer คืออะไร? กระจายโหลดให้ระบบรับไหว
Load Balancer คือ อุปกรณ์หรือ Software ที่กระจาย Traffic ไปยัง Server หลายตัว เพื่อให้ไม่มี Server ตัวใดตัวหนึ่งรับโหลดมากเกินไป ถ้ามี Web Server 1 ตัว รับ Traffic 10,000 คนพร้อมกัน อาจล่ม แต่ถ้ามี 3 ตัว Load Balancer จะกระจาย Traffic ให้ตัวละ ~3,333 คน ทุกตัวทำงานได้สบาย ถ้า Server ตัวใดตัวหนึ่งล่ม Load Balancer จะส่ง Traffic ไปตัวอื่นแทน ไม่มี Downtime
ประเภท Load Balancing
| ประเภท |
Layer |
คำอธิบาย |
| L4 Load Balancing |
Transport (TCP/UDP) |
กระจายตาม IP Port เร็ว ไม่ดู Content |
| L7 Load Balancing |
Application (HTTP) |
กระจายตาม URL Header Cookie ฉลาดกว่า |
Load Balancing Algorithm
| Algorithm |
วิธีทำงาน |
เหมาะกับ |
| Round Robin |
วนรอบส่งไปทีละ Server |
Server Spec เท่ากัน |
| Weighted Round Robin |
วนรอบ แต่ Server แรงกว่าได้มากกว่า |
Server Spec ไม่เท่ากัน |
| Least Connections |
ส่งไป Server ที่ Connection น้อยสุด |
Request ใช้เวลาต่างกัน |
| IP Hash |
User IP เดิมไป Server เดิมเสมอ |
Session Persistence |
| Least Response Time |
ส่งไป Server ที่ตอบเร็วสุด |
ต้องการ Performance ดีสุด |
HAProxy vs Nginx
| คุณสมบัติ |
HAProxy |
Nginx |
| ราคา |
ฟรี (Community) |
ฟรี (Open Source) |
| L4 Load Balancing |
ดีมาก |
ดี |
| L7 Load Balancing |
ดีมาก |
ดีมาก |
| Web Server |
ไม่ใช่ Web Server |
เป็น Web Server ด้วย |
| SSL Termination |
รองรับ |
รองรับ |
| Health Check |
ละเอียดมาก |
ดี (Plus ดีกว่า) |
| Config |
Config File ชัดเจน |
Config File ยืดหยุ่น |
| เหมาะกับ |
Load Balancing โดยเฉพาะ |
Web Server + LB + Reverse Proxy |
Health Check — ตรวจสอบ Server
- TCP Check: ตรวจว่า Port เปิดอยู่ ง่ายสุด
- HTTP Check: ส่ง HTTP Request ตรวจ Status Code 200
- Custom Check: ตรวจ URL เฉพาะ เช่น /health ที่ Return สถานะ App
- Interval: ตรวจทุก 5-10 วินาที ถ้า Fail 3 ครั้งติด ถอด Server ออก
- Recovery: ถ้า Server กลับมาปกติ เพิ่มกลับเข้า Pool
SSL Termination
- คืออะไร: Load Balancer รับ HTTPS แล้วส่ง HTTP ไป Backend Server
- ข้อดี: Backend Server ไม่ต้อง Handle SSL ลดโหลด CPU
- Certificate: ติดตั้ง SSL Certificate ที่ Load Balancer ตัวเดียว
- End-to-End: ถ้าต้องการ Encrypt ตลอดทาง ใช้ SSL Re-encryption
Load Balancer Best Practices
- HA Load Balancer: ใช้ Load Balancer 2 ตัว Active-Passive หรือ Active-Active ถ้า LB ล่ม ระบบทั้งหมดล่ม
- Health Check: ตั้ง Health Check เสมอ ถอด Server ที่ล่มออกอัตโนมัติ
- Session Persistence: ถ้า App ต้องการ Session ใช้ Sticky Session หรือเก็บ Session ใน Redis
- SSL Termination: ทำ SSL Termination ที่ Load Balancer ลด CPU Backend
- Monitor: Monitor Connection Count, Response Time, Error Rate
- Logging: เปิด Access Log ที่ Load Balancer สำหรับ Troubleshoot
- Rate Limiting: ตั้ง Rate Limit ป้องกัน DDoS และ Abuse
สรุป Load Balancer — กระจายโหลดให้ระบบพร้อมใช้งาน
Load Balancer เป็นส่วนสำคัญของ Infrastructure เลือก HAProxy (LB เฉพาะ) หรือ Nginx (Web+LB) ตั้ง Health Check HA และ SSL Termination หากต้องการข้อมูลเพิ่มเติม ติดตามได้ที่ SiamLanCard.com