เราสามารถสร้างระบบ Load Balance Web Server ด้วยวิธีการ URL Redirect
โดยสามารถสร้างด้วยภาษาใดก็ได้ แต่จะขอยกตัวอย่างด้วยภาษา PHP ได้ง่าย ๆ ดังนี้
ตัวอย่างไฟล์ server-status ที่ได้ทำการ monitor web server มาเรียบร้อยแล้ว
webserver1.testlab UP webserver2.testlab DOWN
– เราสามารถใช้คำสั่งดึงไฟล์เพื่อคัดเฉพาะ Web Server ที่สามารถใช้งานได้จริง ๆ ดังนี้
exec("cat /tmp/server-status | grep UP",$redirect);
– จากนั้นจะทำการ นำรายการ server ทั้งหมดซึ่งอยู่ในตัวแปร $redirect มาทำการสุ่ม ดังนี้
$random = rand(0,(count($redirect)-1);
– ก็จะทำเอาเลข server ที่ random ได้ไปเข้ากระบวนการ Redirect ดังนี้
$server = explode(" ",$redirect[$random]); header('HTTP/1.1 301 Moved Permanently'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Expires: Thu, 01 Jan 1970 00:00:00 GMT'); header('Location: https://'.$server[0].'/'); unset($server);
ในกรณีที่ต้องการสร้างหน้ารอให้ทำการตรวจสอบว่าในกรณีที่ไม่มีเครื่องให้บริการให้แสดงข้อความ ตัวอย่างดังนี้
if(count($redirect)==0){ echo "Server Unavailable or Maintenance Period"; }
ดังที่กล่าวมาทั้งหมดข้างต้นสามารถรวมเป็น script ไฟล์ PHP ได้ดังนี้
<?php exec("cat /tmp/server-status | grep UP",$redirect); if(count($redirect)==0){ echo "Server Unavailable or Maintenance Period"; }else{ $random = rand(0,(count($redirect)-1)); $server = explode(" ",$redirect[$random]); header('HTTP/1.1 301 Moved Permanently'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Expires: Thu, 01 Jan 1970 00:00:00 GMT'); header('Location: http://'.$server[0].'/'); unset($server); } unset($redirect); ?>
*สามารถอ่านวิธีสร้างไฟล์สำหรับ monitor web serverได้จาก บทความนี้ http://sysadmin.psu.ac.th/2014/06/19/monitor-web-server-wget-shell-script-daemon/
Comments are closed.