เมื่อคราวที่แล้วเขียนเรื่อง Load Balance ให้ Apache Web Serverv ง่ายๆ โดยใช้ DNS Round Robin ซึ่งสามารถทำ Load Balance ได้ง่ายๆ แต่มีปัญหาที่มีโอกาสเกิดขึ้นได้ คือ เมื่อ Web Server ตัวใดตัวหนึ่งมีปัญหา ผู้เข้าเว็บที่โชคดีได้ IP Address เครื่องนั้นไปก็จะไม่สามารถเข้าถึงเว็บได้ DNS Round Robin ช่วยเรื่อง Load Balance ได้จริง แต่จัดการเรื่อง fail over ไม่ได้ :) ครั้งนี้จะมาแนะนำการทำ Load Balance ง่ายๆ อีกเช่นเคย โดยใช้ Pound
Pound ทำหน้าที่
Pound เป็นโปรแกรมเล็กๆ ง่ายในการจัดการ คุณสามารถสั่งให้ Pound ทำงานแบบ chroot jail ได้โดยการกำหนด uid/gid ได้ :) ก่อนจะติดตั้งและใช้งาน Pound มาทำความเข้าใจโครงสร้างการเชื่อมต่อกันก่อน
จากภาพข้างต้นเราใช้ Pound เป็น Balancer เพื่อกระจาย request จาก Client ไปยังเครื่องเซิร์ฟเวอร์ที่ต่อกับ Pound อยู่ มาติดตั้ง Pound กันเลย สำหรับท่านที่ใช้ Debian, Ubuntu ติดตั้งดังนี้
sudo apt-get install pound
จากนั้นแก้ไข config ที่ /etc/default/pound ดูตรงบรรทัด startup=0 เปลี่ยนเป็น startup=1 จากนั้นมาแก้ไข /etc/pound/pound.cfg ดูในส่วน ListenHTTP ดังนี้
ListenHTTP
Address 10.11.12.10
Port 80
Service
BackEnd
Address 10.11.12.11
Port 80
End
BackEnd
Address 10.11.12.12
Port 80
End
BackEnd
Address 10.11.12.13
Port 80
End
End
End
หากต้องการกำหนด Priority เพื่อกระจายโหลดไปยังเครื่องใดเครื่องหนึ่งมากกว่าเครื่องอื่นๆ ในกรณีที่มีเครื่องใดเครื่องหนึ่งมี Resource มากกว่าเครื่องอื่นๆ และสามารถรับโหลดได้มากกว่าเครื่องอื่นๆ เราสามารถกำหนด Priority เพื่อกระจายโหลดไปยังเครื่องนั้นๆ ได้ ยกตัวอย่าง เช่น เครื่อง Web Server 1 เพียงเพิ่ม Config เข้าไปอีก 1 บรรทัดเพื่อกำหนด Priority ดังนี้
ListenHTTP
Address 10.11.12.10
Port 80
Service
BackEnd
Address 10.11.12.11
Port 80
Priority 7
End
BackEnd
Address 10.11.12.12
Port 80
End
BackEnd
Address 10.11.12.13
Port 80
End
End
End
เพียงเท่านี้คุณก็สามารถจัดการ Load Balance ให้กับ Web Server ของคุณได้แล้วครับ ;)
ไม่มีความเห็น