โลโก้ HAProxy
อันดับ 36 ใน Top 100 Web Server และ ProxyGPLv2 (โอเพนซอร์ส)

HAProxy คืออะไร และวิธีติดตั้ง Load Balancer บน Cloud Server

HAProxy คือซอฟต์แวร์กระจายโหลดที่ขึ้นชื่อเรื่องความเสถียรและประสิทธิภาพ ใช้กระจายทราฟฟิกไปยังเซิร์ฟเวอร์หลายเครื่อง พร้อมตรวจสุขภาพและถอดเครื่องที่มีปัญหาออกจากวงโดยอัตโนมัติ

หมวดหมู่
Web Server และ Proxy
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 2 GB
ไลเซนส์
GPLv2 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

HAProxy คืออะไร

เมื่อระบบโตจนเครื่องเดียวรับไม่ไหว หรือธุรกิจรับความเสี่ยงที่เครื่องเดียวล่มแล้วทั้งระบบหยุดไม่ได้ ทางออกคือมีเซิร์ฟเวอร์หลายเครื่องและมีตัวกระจายโหลดอยู่ด้านหน้า HAProxy คือซอฟต์แวร์ที่ทำหน้าที่นั้นและถูกใช้ในระบบขนาดใหญ่ทั่วโลก

HAProxy ทำงานได้ทั้งระดับ TCP และ HTTP จึงกระจายโหลดได้ทั้งเว็บ ฐานข้อมูล และบริการอื่น พร้อมความสามารถอย่างการทำ Sticky Session ให้ผู้ใช้คนเดิมกลับไปเครื่องเดิม และการตรวจสุขภาพเครื่องหลังบ้านตามรอบ

ในสถาปัตยกรรมที่ต้องการความพร้อมใช้งานสูงจริง ตัว HAProxy เองก็ควรมีสองเครื่องและใช้ Virtual IP สลับกัน เพื่อไม่ให้ตัวกระจายโหลดกลายเป็นจุดล้มเหลวจุดเดียวของระบบ

แผนผังการวางระบบ HAProxy บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 80, 443, 8404 ตัว HAProxy และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 2 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
HAProxy ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ HAProxy

กระจายโหลดหลายอัลกอริทึม

เลือกได้ทั้งแบบวนรอบ แบบเลือกเครื่องที่มีการเชื่อมต่อน้อยที่สุด หรือแบบอิงค่าแฮชของผู้ใช้

ตรวจสุขภาพอัตโนมัติ

ถอดเครื่องที่ไม่ตอบสนองออกจากวงทันที และนำกลับเข้ามาเมื่อกลับมาปกติ

รองรับ TLS Termination

ถอดรหัส HTTPS ที่ชั้นหน้าเพื่อลดภาระเครื่องหลังบ้าน หรือส่งต่อแบบเข้ารหัสทั้งเส้นทางก็ได้

หน้าสถิติในตัว

ดูสถานะการเชื่อมต่อและสุขภาพของทุกเครื่องหลังบ้านได้จากหน้าเว็บเดียว

ใช้ HAProxy ทำอะไรได้บ้าง

  • กระจายโหลดเว็บไปยัง Cloud Server หลายเครื่องเพื่อรองรับผู้ใช้จำนวนมาก
  • ทำ High Availability ให้ระบบที่หยุดไม่ได้ เช่น ระบบชำระเงินหรือ API หลัก
  • กระจายการเชื่อมต่อฐานข้อมูลแบบอ่านไปยัง Replica หลายตัว
  • ทยอยเปลี่ยนเวอร์ชันแอปโดยไม่ต้องปิดระบบ

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ HAProxy 3 ระดับ เริ่มจาก 2 vCPU แรม 2 GB ดิสก์ NVMe 20 GB ไปจนถึง 8 vCPU แรม 8 GB ดิสก์ NVMe 80 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นกระจายโหลดเว็บ 2 ถึง 3 เครื่อง2 vCPU2 GBNVMe 20 GB
แนะนำระบบ Production ที่มีทราฟฟิกต่อเนื่อง4 vCPU4 GBNVMe 40 GB
ทราฟฟิกสูงรับหลายหมื่นการเชื่อมต่อพร้อมกันและถอดรหัส TLS ที่ชั้นหน้า8 vCPU8 GBNVMe 80 GB

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง HAProxy บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
  • Cloud Server ปลายทางอย่างน้อยสองเครื่องในวง Private Network เดียวกัน
  • ใบรับรอง SSL ในรูปแบบไฟล์ PEM ถ้าจะถอดรหัสที่ชั้นหน้า

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง HAProxy

    sudo apt update
    sudo apt -y install haproxy
    sudo systemctl enable haproxy
  2. 2

    ตั้งค่าใน /etc/haproxy/haproxy.cfg

    ตัวอย่างนี้รับ HTTP ที่พอร์ต 80 แล้วกระจายไปยังเว็บสองเครื่องในวงภายใน พร้อมตรวจสุขภาพ

    frontend web_in
      bind *:80
      default_backend web_servers
    
    backend web_servers
      balance roundrobin
      option httpchk GET /health
      server web1 10.10.0.11:80 check
      server web2 10.10.0.12:80 check
    
    listen stats
      bind 127.0.0.1:8404
      stats enable
      stats uri /
  3. 3

    ตรวจไฟล์ตั้งค่าก่อนเริ่มบริการ

    ขั้นตอนนี้สำคัญมาก เพราะไฟล์ตั้งค่าผิดจะทำให้บริการไม่ขึ้นและเว็บทั้งระบบล่ม

    sudo haproxy -c -f /etc/haproxy/haproxy.cfg
    sudo systemctl restart haproxy
  4. 4

    เพิ่มการรับ HTTPS

    รวมไฟล์ใบรับรองกับคีย์เป็นไฟล์ PEM เดียว แล้วให้ HAProxy ถอดรหัสที่ชั้นหน้า

    sudo mkdir -p /etc/haproxy/certs
    sudo bash -c 'cat /etc/letsencrypt/live/example.com/fullchain.pem \
      /etc/letsencrypt/live/example.com/privkey.pem > /etc/haproxy/certs/example.pem'
    # แล้วเพิ่มบรรทัดนี้ใน frontend
    # bind *:443 ssl crt /etc/haproxy/certs/example.pem

ให้เครื่องหลังบ้านเปิดเส้นทาง /health ที่ตอบ 200 เสมอ เพื่อให้การตรวจสุขภาพสะท้อนสถานะจริงของแอป ไม่ใช่แค่ว่าเว็บเซิร์ฟเวอร์ยังทำงานอยู่

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
80TCPรับทราฟฟิก HTTP จากผู้ใช้
443TCPรับทราฟฟิก HTTPS
8404TCPหน้าสถิติ (ควรเปิดเฉพาะภายในเครื่องหรือผ่าน VPN)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ไม่เปิดหน้าสถิติสู่อินเทอร์เน็ต หรือถ้าจำเป็นให้ตั้งรหัสผ่านและจำกัดไอพี
  • ให้เครื่องหลังบ้านรับทราฟฟิกจากไอพีของ HAProxy เท่านั้น
  • เปิด TLS เฉพาะเวอร์ชัน 1.2 ขึ้นไป และเลือกชุดรหัสที่ปลอดภัย
  • ตั้งค่าจำกัดจำนวนการเชื่อมต่อต่อไอพีเพื่อลดผลของการยิงคำขอถี่
  • วางสองเครื่องพร้อม Keepalived ถ้าระบบต้องการความพร้อมใช้งานสูงจริง

ทำไมควรรัน HAProxy บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

สร้าง Cloud Server เพิ่มเป็นเครื่องหลังบ้านได้ในไม่กี่นาที แล้วเพิ่มเข้าไปในไฟล์ตั้งค่าโดยไม่ต้องหยุดระบบ

ทราฟฟิกระหว่าง HAProxy กับเครื่องหลังบ้านวิ่งใน Private Network ในไทย จึงเร็วและไม่มีค่าใช้จ่ายทราฟฟิกภายใน

วางสถาปัตยกรรมสองไซต์ระหว่าง Data Center ในไทยและสิงคโปร์ได้ เมื่อองค์กรต้องการแผนสำรองข้ามไซต์

คำถามที่พบบ่อยเกี่ยวกับ HAProxy

HAProxy ต่างจาก Nginx ตรงไหน

ทั้งคู่ทำ Load Balancer ได้ แต่ HAProxy ถูกออกแบบมาเพื่องานกระจายโหลดโดยเฉพาะ จึงมีตัวเลือกการตรวจสุขภาพ การจัดคิว และสถิติที่ละเอียดกว่า ส่วน Nginx เด่นกว่าตรงที่เป็นเว็บเซิร์ฟเวอร์และแคชในตัวเดียวกัน

ต้องมีเครื่องหลังบ้านกี่เครื่องถึงคุ้ม

เริ่มที่สองเครื่องก็คุ้มแล้ว เพราะได้ทั้งการกระจายโหลดและความต่อเนื่องเมื่อเครื่องหนึ่งหยุดเพื่ออัปเดต ถ้าระบบสำคัญมากควรมีสามเครื่องเพื่อให้ยังรับโหลดไหวขณะเครื่องหนึ่งปิดปรับปรุง

HAProxy จะกลายเป็นจุดล้มเหลวจุดเดียวหรือไม่

จะเป็นถ้ามีเครื่องเดียว วิธีแก้มาตรฐานคือติดตั้งสองเครื่องแล้วใช้ Keepalived สลับ Virtual IP ให้กันและกัน ทีมงานของเราออกแบบและติดตั้งรูปแบบนี้ให้ได้

ให้เราติดตั้ง HAProxy ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด