Load balance web server (nginx)
หลักการทำ load balance
load balance จะทำโดยเอา server หลาย ๆ เครื่องมาทำงานร่วมกัน กระจาย load ไปแต่ละเครื่อง เพื่อให้มีประสิทธิภาพในการรับงานที่เข้ามาจาก User จำนวนมาก ๆ ได้ ดังนั้นจึงทำงานได้มากกว่าในเวลาเท่ากัน และโดยทั่วไปผู้ใช้ทั้งหมดได้รับบริการเร็วขึ้น load balance สามารถใช้กับฮาร์ดแวร์ ซอฟต์แวร์ หรือการผสมทั้งคู่ นอกจากนี้ยังมีคุณสมบัติของ Fail Over คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทางานได้ เช่น Down อยู่ หรือไม่สามารถรับงานหรือ user เพิ่มได้เนื่องจาก Resource ที่ใช้ทำงานไม่พอ ตัว load balance ที่เป็นตัวแจก Load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง load ไปยังคอมพิวเตอร์เครื่องอื่น ๆ แทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้ใหม่
โดยปกติระบบ load balance จะนิยมใช้กับเว็บไซด์, เครือข่ายสำหรับการแช็ตขนาดใหญ่, เว็ปไซด์สำหรับส่งไฟล์ที่ใช้ bandwidth สูงๆ, NNTPเซิร์ฟเวอร์ และDNSเซิร์ฟเวอร์ ขณะที่จะมีประโยชน์ในการรักษาความปลอดภัยโดยการซ่อนโครงสร้างของเครือข่ายภายใน และยับยั้งการเข้าถึงแกนกลางของเครือข่ายหรือบริการที่ทำงานอยู่พอร์ตอื่น
การทำ load balance สามารถทำได้หลากหลายวิธี ไม่ว่าจะเป็นการใช้ DNS ในลักษณะแบบ round robin (มี A record หลายอัน) หรือจะเป็นการใช้ Load Balancer เช่น HAProxy หรือ Ultra Monkey โดยเราจะมี Load Balancer หนึ่งตัว ข้างหน้า เซิร์ฟเวอร์ภายในกลุ่ม เพื่อรอรับการร้องขอจากผู้ใช้ เมื่อมีร้องขอเข้ามาตัว Load Balancer จะทำการ ส่งต่อการร้องขอนั้นไปยังเซิร์ฟเวอร์ภายในกลุ่ม โดยการทำงานจะเป็นการเปรียบเทียบสมรรถนะของเครื่องแล้วกระจายงานสู่เครื่องเซิร์ฟเวอร์ เพื่อให้เซิร์ฟเวอร์แต่ละเครื่องมีทำงานที่สมดุลกัน