การตั้งค่า 'XR' (Crossroads) Load Balancer สำหรับเว็บเซิร์ฟเวอร์บน RHEL / CentOS


Crossroads เป็นบริการที่ไม่ขึ้นอยู่กับความสมดุลของโหลดโอเพนซอร์สและยูทิลิตี้การโอเวอร์คล็อกสำหรับบริการบน Linux และ TCP มันสามารถใช้สำหรับ HTTP, HTTPS, SSH, SMTP และ DNS เป็นต้นนอกจากนี้ยังเป็นยูทิลิตี้แบบมัลติเธรดซึ่งใช้พื้นที่หน่วยความจำเพียงหน่วยเดียวเท่านั้นซึ่งจะนำไปสู่การเพิ่มประสิทธิภาพเมื่อปรับสมดุลโหลด

มาดูกันว่า XR ทำงานอย่างไร เราสามารถค้นหา XR ระหว่างไคลเอนต์เครือข่ายและรังของเซิร์ฟเวอร์ที่ส่งคำขอของลูกค้าไปยังเซิร์ฟเวอร์ที่สมดุลภาระ

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

มีเว็บเซิร์ฟเวอร์สองแห่งหนึ่งเซิร์ฟเวอร์เกตเวย์ที่เราติดตั้งและตั้งค่า XR เพื่อรับคำขอของไคลเอ็นต์และแจกจ่ายไปยังเซิร์ฟเวอร์ต่างๆ

XR Crossroads Gateway Server : 172.16.1.204
Web Server 01 : 172.16.1.222
Web Server 02 : 192.168.1.161

ในสถานการณ์ข้างต้นเซิร์ฟเวอร์เกตเวย์ของฉัน (เช่น XR Crossroads) มีที่อยู่ IP 172.16.1.222 , webserver01 คือ 172.16.1.222 และฟังผ่าน พอร์ต 8888 และ webserver02 คือ 192.168.1.161 และรับฟังผ่านพอร์ต 5555

ตอนนี้สิ่งที่ฉันต้องการคือการสมดุลภาระของการร้องขอทั้งหมดที่ได้รับจากเกตเวย์ XR จากอินเทอร์เน็ตและแจกจ่ายให้กับพวกเขาในสองเว็บเซิร์ฟเวอร์ที่สมดุลภาระ

ขั้นที่ 1: ติดตั้ง XR Crossroads Load Balancer บนเกตเวย์เซิร์ฟเวอร์

1. โชคไม่ดีที่ไม่มีแพ็คเกจ RPM แบบไบนารีสำหรับ crosscroads วิธีเดียวในการติดตั้ง XR crossroads จาก tarball ต้นทาง

ในการรวบรวม XR คุณต้องมีคอมไพเลอร์ C ++ และยูทิลิตี้ Gnu make ที่ติดตั้งบนระบบเพื่อที่จะดำเนินการติดตั้งต่อได้ฟรี

# yum install gcc gcc-c++ make

จากนั้นดาวน์โหลดแหล่งข้อมูล tarball โดยไปที่เว็บไซต์ทางการของพวกเขา (https://crossroads.e-tunity.com) และคว้าแพ็คเกจที่เก็บถาวร (เช่น crossroads-stable.tar.gz )

หรืออีกวิธีหนึ่งคุณสามารถใช้ยูทิลิตี้ wget เพื่อดาวน์โหลดแพ็คเกจและแตกไฟล์ในตำแหน่งใดก็ได้ (เช่น:// usr/src/) ไปที่ไดเรกทอรีที่ไม่ได้บรรจุ strong> ทำการติดตั้ง ” คำสั่ง

# wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
# tar -xvf crossroads-stable.tar.gz
# cd crossroads-2.74/
# make install

หลังจากการติดตั้งเสร็จสิ้นไฟล์ไบนารีจะถูกสร้างขึ้นภายใต้การกำหนดค่า /usr/sbin/ และ XR ภายใน /etc คือ“ xrctl.xml

2. ตามข้อกำหนดเบื้องต้นล่าสุดคุณต้องมีเว็บเซิร์ฟเวอร์สองเครื่อง เพื่อความสะดวกในการใช้งานฉันได้สร้างอินสแตนซ์ SimpleHTTPServer สองไพ ธ อนไว้ในเซิร์ฟเวอร์เดียว

เพื่อดูวิธีการตั้งค่า python SimpleHTTPServer อ่านบทความของเราที่สร้างสองเว็บเซิร์ฟเวอร์อย่างง่ายดายโดยใช้ SimpleHTTPServer

อย่างที่ฉันบอกว่าเราใช้เว็บเซิร์ฟเวอร์สองเครื่องและพวกเขาคือ webserver01 ทำงานบน 172.16.1.222 ผ่านพอร์ต 8888 และ webserver02 ทำงานบน 192.168.1.161 ผ่านพอร์ต 5555

ขั้นตอนที่ 2: กำหนดค่า XR Crossroads Load Balancer

3. สิ่งที่จำเป็นต้องมีทั้งหมดอยู่ในสถานที่ ตอนนี้สิ่งที่เราต้องทำคือกำหนดค่าไฟล์ xrctl.xml เพื่อกระจายโหลดระหว่างเว็บเซิร์ฟเวอร์ที่ได้รับจากเซิร์ฟเวอร์ XR จากอินเทอร์เน็ต

ตอนนี้เปิดไฟล์ xrctl.xml พร้อมกับตัวแก้ไข vi/vim

# vim /etc/xrctl.xml

และทำการเปลี่ยนแปลงตามที่แนะนำด้านล่าง

<?xml version=<94>1.0<94> encoding=<94>UTF-8<94>?>
<configuration>
<system>
<uselogger>true</uselogger>
<logdir>/tmp</logdir>
</system>
<service>
<name>Tecmint</name>
<server>
<address>172.16.1.204:8080</address>
<type>tcp</type>
<webinterface>0:8010</webinterface>
<verbose>yes</verbose>
<clientreadtimeout>0</clientreadtimeout>
<clientwritetimout>0</clientwritetimeout>
<backendreadtimeout>0</backendreadtimeout>
<backendwritetimeout>0</backendwritetimeout>
</server>
<backend>
<address>172.16.1.222:8888</address>
</backend>
<backend>
<address>192.168.1.161:5555</address>
</backend>
</service>
</configuration>

ที่นี่คุณสามารถเห็นการกำหนดค่า XR ขั้นพื้นฐานที่ทำได้ภายใน xrctl.xml ฉันได้กำหนดว่าเซิร์ฟเวอร์ XR คืออะไรเซิร์ฟเวอร์แบ็คเอนด์และพอร์ตและเว็บอินเตอร์เฟสพอร์ตสำหรับ XR คืออะไร

4. ตอนนี้คุณต้องเริ่มต้น XR daemon ด้วยการออกคำสั่งด้านล่าง

# xrctl start
# xrctl status

5. ยอดเยี่ยม ตอนนี้ได้เวลาตรวจสอบว่าการกำหนดค่าทำงานได้ดีหรือไม่ เปิดเว็บเบราว์เซอร์สองแห่งและป้อนที่อยู่ IP ของเซิร์ฟเวอร์ XR ด้วยพอร์ตและดูผลลัพธ์

น่าอัศจรรย์ มันใช้งานได้ดี ตอนนี้ถึงเวลาเล่นกับ XR แล้ว

6. ถึงเวลาเข้าสู่แผงควบคุม XR Crossroads แล้วดูพอร์ตที่เราได้กำหนดค่าไว้สำหรับเว็บอินเตอร์เฟส ป้อนที่อยู่ IP ของเซิร์ฟเวอร์ XR ด้วยหมายเลขพอร์ตสำหรับเว็บอินเตอร์เฟสที่คุณกำหนดค่าไว้ใน xrctl.xml

http://172.16.1.204:8010

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

ส่วนที่ดีที่สุดคือคุณสามารถทำได้แม้จะไม่ได้กำหนดค่า xrctl.xml สิ่งเดียวที่คุณต้องทำคือออกคำสั่งด้วยไวยากรณ์ต่อไปนี้และมันจะทำงานให้เสร็จ

# xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

คำอธิบายของไวยากรณ์ข้างต้นโดยละเอียด:

  1. –verbose will show what happens when the command has executed.
  2. –server defines the XR server you have installed the package in.
  3. –backend defines the webservers you need to balance the traffic to.
  4. Tcp defines it uses tcp services.

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเอกสารและการกำหนดค่าของ CROSSROADS กรุณาเยี่ยมชมเว็บไซต์อย่างเป็นทางการของพวกเขาได้ที่: https://crossroads.e-tunity.com/

XR Corssroads ช่วยเพิ่มประสิทธิภาพของเซิร์ฟเวอร์ปกป้องการหยุดทำงานและช่วยให้ผู้ดูแลระบบของคุณง่ายขึ้นและสะดวกขึ้น หวังว่าคุณจะสนุกกับคำแนะนำและอย่าลังเลที่จะแสดงความคิดเห็นด้านล่างสำหรับคำแนะนำและการชี้แจง ติดต่อกับ Tecmint เพื่อประโยชน์ของวิธีการ