HaProxy ถูกใช้โดยไซต์ยอดนิยม เช่น Tumblr, GitHub และ StackOverflow ในคู่มือนี้ เราจะแนะนำคุณตลอดการติดตั้ง HAProxy ในการตั้งค่าเว็บเซิร์ฟเวอร์ที่ขับเคลื่อนด้วย Nginx
การตั้งค่าแล็บ
3 อินสแตนซ์ของเซิร์ฟเวอร์ CentOS 7 ดังที่แสดง
ชื่อโฮสต์ ที่อยู่ IP
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
ขั้นตอนที่ 1: แก้ไขไฟล์ /etc/hosts สำหรับโหลดบาลานเซอร์
ในการเริ่มต้น ให้เข้าสู่ระบบโหลดบาลานเซอร์และแก้ไขไฟล์ /etc/hosts เพื่อรวมชื่อโฮสต์และที่อยู่ IP ของเว็บเซิร์ฟเวอร์ทั้งสองดังที่แสดง
$ เพราะ / เป็นต้น / เจ้าภาพ
3.19.229.234 server_01
3.17.9.217 เซิร์ฟเวอร์-02
เมื่อเสร็จแล้ว ให้บันทึกการเปลี่ยนแปลงและออกจากไฟล์กำหนดค่า
ตอนนี้ไปที่แต่ละเว็บเซิร์ฟเวอร์และอัปเดต / etc / โฮสต์ ไฟล์ที่มีที่อยู่ IP และชื่อโฮสต์ของโหลดบาลานเซอร์
3.17.12.132 ตัวจัดสรรภาระงานหลังจากนั้น ให้ยืนยันว่าคุณสามารถ ping ตัวจัดสรรภาระงานจาก server_01
และเช่นเดียวกันจาก server_02
นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณสามารถ ping เซิร์ฟเวอร์จากโหลดบาลานเซอร์ได้
สมบูรณ์แบบ ! เซิร์ฟเวอร์ทั้งหมดสามารถสื่อสารกับโหลดบาลานเซอร์ได้!
ขั้นตอนที่ 2: ติดตั้งและกำหนดค่า HA Proxy บนโหลดบาลานเซอร์
เนื่องจาก HA Proxy พร้อมใช้งานจากพื้นที่เก็บข้อมูลอย่างเป็นทางการของ CentOS เราจึงจะติดตั้งโดยใช้ตัวจัดการแพ็คเกจ yum หรือ dnf
แต่เช่นเคยให้อัปเดตระบบก่อน
# ยำปรับปรุงถัดไป ติดตั้ง HA Proxy ตามภาพ
# ยำติดตั้ง แฮพร็อกซี่เมื่อติดตั้งสำเร็จ ให้ไปที่ไดเรกทอรี haproxy
# ซีดี / เป็นต้น / แฮพร็อกซี่แนวทางปฏิบัติที่ดีที่สุดกำหนดให้เราต้องสำรองข้อมูลไฟล์การกำหนดค่าก่อนที่จะทำการแก้ไขใดๆ ดังนั้นสำรองข้อมูล haproxy.cfg ไฟล์โดยการเปลี่ยนชื่อ
# เอ็มวี haproxy.cfg haproxy.cfg.bakถัดไป ดำเนินการต่อและเปิดไฟล์กำหนดค่า
เพราะ haproxy.cfgตรวจสอบให้แน่ใจว่าคุณได้ทำการแก้ไขตามที่แสดง
#------------------------------------------------- --------------------# การตั้งค่าส่วนกลาง
#------------------------------------------------- --------------------
ทั่วโลก
บันทึก 127.0.0.1 ท้องถิ่น2 #บันทึกการกำหนดค่า
โครต / เคยเป็น / lib / แฮพร็อกซี่
ไฟล์ pid / เคยเป็น / วิ่ง / haproxy.pid
แม็กซ์คอนน์ 4000
ผู้ใช้ haproxy #Haproxy ทำงานภายใต้ผู้ใช้และกลุ่ม 'haproxy'
กลุ่ม แฮปร็อกซี
ภูต
# เปิดซ็อกเก็ตยูนิกซ์สถิติ
ซ็อกเก็ตสถิติ / เคยเป็น / lib / แฮพร็อกซี่ / สถิติ
#------------------------------------------------- --------------------
# ค่าเริ่มต้นทั่วไปที่ส่วน 'ฟัง' และ 'แบ็กเอนด์' ทั้งหมดจะทำ
# ใช้หากไม่ได้กำหนดไว้ในบล็อกของพวกเขา
#------------------------------------------------- --------------------
ค่าเริ่มต้น
โหมด http
log ส่วนกลาง
ตัวเลือก httplog
ตัวเลือก dontlognull
ตัวเลือก http-ปิดเซิร์ฟเวอร์
ตัวเลือกไปข้างหน้าสำหรับ ยกเว้น 127.0.0.0 / 8
ตัวเลือก จัดส่งซ้ำ
ลองใหม่ 3
หมดเวลา http-request 10 วินาที
คิวหมดเวลา 1m
หมดเวลาเชื่อมต่อ 10 วินาที
หมดเวลาไคลเอ็นต์ 1m
หมดเวลาเซิร์ฟเวอร์ 1m
หมดเวลา http-keep-alive 10 วินาที
ตรวจสอบการหมดเวลา 10 วินาที
แม็กซ์คอนน์ 3000
#------------------------------------------------- --------------------
#การกำหนดค่าการตรวจสอบ HAProxy
#------------------------------------------------- --------------------
ฟังการตรวจสอบ haproxy3 * : 8080 #Haproxy Monitoring ทำงานบนพอร์ต 8080
โหมด http
ตัวเลือกไปข้างหน้าสำหรับ
ตัวเลือก httpclose
สถิติ เปิดใช้งาน
สถิติการแสดงตำนาน
รีเฟรชสถิติ 5 วินาที
สถิติยูริ / สถิติ #URL สำหรับการตรวจสอบ HAProxy
สถานะของอาณาจักร Haproxy\ สถิติ
สถิติรับรองความถูกต้อง Password123: Password123 #User และ Password สำหรับการเข้าสู่แดชบอร์ดการตรวจสอบ
ผู้ดูแลระบบสถิติ ถ้า จริง
default_backend แอปหลัก #นี่เป็นตัวเลือกสำหรับการตรวจสอบแบ็กเอนด์
#------------------------------------------------- --------------------
# การกำหนดค่าส่วนหน้า
#------------------------------------------------- --------------------
ส่วนหน้าหลัก
ผูก * : 80
ตัวเลือก http-ปิดเซิร์ฟเวอร์
ตัวเลือกไปข้างหน้าสำหรับ
default_backend แอปหลัก
#------------------------------------------------- --------------------
# BackEnd ปัดเศษเป็นอัลกอริทึมสมดุล
#------------------------------------------------- --------------------
แอปแบ็กเอนด์หลัก
วงเวียนสมดุล #อัลกอริทึมสมดุล
ตัวเลือก httpchk HEAD / เอชทีทีพี / 1.1 \r\nโฮสต์:\ localhost
#Check แอปพลิเคชันเซิร์ฟเวอร์พร้อมใช้งานแล้ว - รหัสสถานะ 200
เซิร์ฟเวอร์ server_01 3.19.229.234: 80 ตรวจสอบ #งินx1
เซิร์ฟเวอร์ server_02 3.17.9.217: 80 ตรวจสอบ #งินx2
อย่าลืมแก้ไขชื่อโฮสต์และที่อยู่ IP ของเว็บเซิร์ฟเวอร์ตามที่ระบุในสองบรรทัดสุดท้าย บันทึกการเปลี่ยนแปลงและออก
ขั้นตอนต่อไปคือการกำหนดค่า Rsyslog เพื่อให้สามารถบันทึกสถิติ HAProxy
# เพราะ / เป็นต้น / rsyslog.confตรวจสอบให้แน่ใจว่าคุณไม่ได้แสดงความคิดเห็นบรรทัดด้านล่างเพื่ออนุญาตการเชื่อมต่อ UDP
$Modโหลด โคลน$UDPServerRun 514
จากนั้น ดำเนินการต่อและสร้างไฟล์คอนฟิกูเรชันใหม่ haproxy.conf
# เพราะ / เป็นต้น / rsyslog.d / haproxy.confวางบรรทัดต่อไปนี้ บันทึกและออก
local2.=ข้อมูล / เคยเป็น / บันทึก / haproxy-access.log #สำหรับบันทึกการเข้าถึงlocal2.notice / เคยเป็น / บันทึก / haproxy-info.log #สำหรับข้อมูลบริการ - แบ็กเอนด์ ตัวโหลดบาลานซ์
เพื่อให้การเปลี่ยนแปลงมีผล ให้รีสตาร์ท rsyslog daemon ดังที่แสดง:
# systemctl รีสตาร์ท rsyslogจากนั้นเริ่มและเปิดใช้งาน HAProxy
# systemctl เริ่ม rsyslog# systemctl เปิดใช้งาน rsyslog
ตรวจสอบว่า HAProxy กำลังทำงานอยู่
# rsyslog สถานะ systemctlขั้นตอนที่ 3: ติดตั้งและกำหนดค่า Nginx
ตอนนี้เหลือส่วนเดียวคือการติดตั้ง Nginx ลงชื่อเข้าใช้แต่ละเซิร์ฟเวอร์และอัปเดตแพ็คเกจระบบก่อน:
# ยำปรับปรุงถัดไป ติดตั้ง EPEL (แพ็คเกจเสริมสำหรับ Enterprise Linux)
# ยำติดตั้ง ปล่อยความอบอุ่นในการติดตั้ง Nginx ให้รันคำสั่ง:
# ยำติดตั้ง จิงซ์ถัดไป เริ่มและเปิดใช้งาน Nginx
# systemctl เริ่ม nginx# systemctl เปิดใช้งาน nginx
จากนั้นเราจะแก้ไขไฟล์ index.html ในทั้งสองกรณีเพื่อสาธิตหรือจำลองว่าโหลดบาลานเซอร์สามารถกระจายปริมาณการใช้งานเว็บไปยังเซิร์ฟเวอร์ทั้งสองได้อย่างไร
สำหรับ server_01
# เสียงสะท้อน 'server_01 สวัสดี ยินดีต้อนรับเข้าสู่เว็บเซิร์ฟเวอร์เครื่องแรก' > index.htmlสำหรับ server_02
# เสียงสะท้อน 'server_02 สวัสดี ยินดีต้อนรับเข้าสู่เว็บเซิร์ฟเวอร์ที่สอง' > index.htmlเพื่อให้การเปลี่ยนแปลงมีผล ให้รีสตาร์ท Nginx
# systemctl รีสตาร์ท nginxขั้นตอนที่ 4: ทดสอบว่าโหลดบาลานเซอร์ทำงานอยู่หรือไม่
ในที่สุดเราก็มาถึงจุดที่เราต้องการดูว่าการกำหนดค่าทำงานหรือไม่ ดังนั้นให้ลงชื่อเข้าใช้ load balancer และรันคำสั่ง curl ซ้ำๆ
# ขด 3.17.12.132คุณควรได้รับเอาต์พุตสำรองบนเทอร์มินัลที่แสดงค่าของ index.html จาก server_01 และ server_02
ตอนนี้มาทดสอบโดยใช้เว็บเบราว์เซอร์ เรียกดูที่อยู่ IP ของตัวจัดสรรภาระงานของคุณ
http: // load-balancer-ที่อยู่ IPหน้าแรกจะแสดงเนื้อหาจากเว็บเซิร์ฟเวอร์ใดๆ
ตอนนี้รีเฟรชหน้าเว็บและตรวจดูว่าแสดงเนื้อหาจากเว็บเซิร์ฟเวอร์อื่นหรือไม่
สมบูรณ์แบบ ! โหลดบาลานซ์กำลังกระจายทราฟฟิก IP อย่างเท่าเทียมกันระหว่างสองเว็บเซิร์ฟเวอร์ !
สรุปบทช่วยสอนนี้เกี่ยวกับวิธีการติดตั้งและกำหนดค่า HAProxy บน CentOS 8 เราจะขอบคุณคำติชมของคุณเป็นอย่างมาก