Πώς να ρυθμίσετε το Load Balancer υψηλής διαθεσιμότητας με το 'HAProxy' για τον έλεγχο της επισκεψιμότητας του διακομιστή Web


Το HAProxy σημαίνει διακομιστής μεσολάβησης υψηλής διαθεσιμότητας. Είναι μια δωρεάν και ανοιχτού κώδικα εφαρμογή γραμμένη σε γλώσσα προγραμματισμού C. Η εφαρμογή HAProxy χρησιμοποιείται ως εξισορρόπηση φορτίου TCP/HTTP και για λύσεις μεσολάβησης. Η πιο κοινή χρήση της εφαρμογής HAProxy είναι η κατανομή του φόρτου εργασίας σε πολλούς διακομιστές, π.χ. διακομιστής web, διακομιστής βάσης δεδομένων κ.λπ., βελτιώνοντας έτσι τη συνολική απόδοση και αξιοπιστία του περιβάλλοντος διακομιστή.

Η εξαιρετικά αποτελεσματική και γρήγορη εφαρμογή χρησιμοποιείται από πολλούς από τους φημισμένους οργανισμούς στον κόσμο, οι οποίοι περιλαμβάνουν αλλά δεν περιορίζονται σε αυτά – Twitter, Reddit, GitHub και Amazon. Είναι διαθέσιμο για πλατφόρμα Linux, BSD, Solaris και AIX.

Σε αυτό το σεμινάριο, θα συζητήσουμε τη διαδικασία ρύθμισης ενός εξισορροπητή φορτίου υψηλής διαθεσιμότητας χρησιμοποιώντας HAProxy για τον έλεγχο της κυκλοφορίας εφαρμογών που βασίζονται σε HTTP (διακομιστές ιστού) διαχωρίζοντας αιτήματα σε πολλούς διακομιστές.

Για αυτό το άρθρο, χρησιμοποιούμε την πιο πρόσφατη σταθερή έκδοση του HAProxy, δηλαδή την 1.5.10 που κυκλοφόρησε στις 31 Δεκεμβρίου 2014. Επίσης, χρησιμοποιούμε το CentOS 6.5 για αυτό εγκατάστασης, αλλά οι παρακάτω οδηγίες λειτουργούν επίσης σε διανομές CentOS/RHEL/Fedora και Ubuntu/Debian.

Η ρύθμιση του περιβάλλοντος μου

Εδώ ο διακομιστής μας HAProxy του εξισορροπητή φορτίου με όνομα κεντρικού υπολογιστή ως websrv.tecmintlocal.com με διεύθυνση IP 192.168.0.125.

Ρύθμιση διακομιστή HAProxy
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Ρύθμιση διακομιστών web πελάτη

Τα άλλα τέσσερα μηχανήματα είναι σε λειτουργία με διακομιστές ιστού όπως ο Apache.

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

Βήμα 1: Εγκατάσταση του Apache σε υπολογιστές-πελάτες

1. Πρώτα πρέπει να εγκαταστήσουμε το Apache και στους τέσσερις διακομιστές και να μοιραστούμε οποιονδήποτε ιστότοπο, για να εγκαταστήσουμε τον Apache και στους τέσσερις διακομιστές εδώ θα χρησιμοποιήσουμε την ακόλουθη εντολή.

yum install httpd		[On RedHat based Systems]
apt-get install apache2	[On Debian based Systems]

2. Αφού εγκαταστήσετε τον διακομιστή ιστού Apache και στους τέσσερις υπολογιστές-πελάτες, μπορείτε να επαληθεύσετε οποιονδήποτε από τον διακομιστή εάν εκτελείται το Apache, αποκτώντας πρόσβαση σε αυτόν μέσω διεύθυνσης IP στο πρόγραμμα περιήγησης.

http://192.168.0.121

Βήμα 2: Εγκατάσταση διακομιστή HAProxy

3. Στις περισσότερες από τις σημερινές σύγχρονες διανομές Linux, το HAPRoxy μπορεί να εγκατασταθεί εύκολα από το προεπιλεγμένο αποθετήριο βάσης χρησιμοποιώντας τον προεπιλεγμένο διαχειριστή πακέτων yum ή apt-get .

Για παράδειγμα, για να εγκαταστήσετε το HAProxy σε εκδόσεις RHEL/CentOS/Fedora και Debian/Ubuntu, εκτελέστε την ακόλουθη εντολή. Εδώ έχω συμπεριλάβει και το πακέτο openssl, γιατί πρόκειται να ρυθμίσουμε το HAProxy με υποστήριξη SSL και NON-SSL.

yum install haproxy openssl-devel	[On RedHat based Systems]
apt-get install haproxy		[On Debian based Systems]

Σημείωση: Στο Debian Whezzy 7.0, πρέπει να ενεργοποιήσουμε το αποθετήριο backports προσθέτοντας ένα νέο αρχείο backports.list στον κατάλογο "/etc/apt/sources.list.d/" με το ακόλουθο περιεχόμενο.

echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

Στη συνέχεια, ενημερώστε τη βάση δεδομένων του αποθετηρίου και εγκαταστήστε το HAProxy.

apt-get update
apt-get install haproxy -t wheezy-backports

Βήμα 3: Διαμόρφωση αρχείων καταγραφής HAProxy

4. Στη συνέχεια, πρέπει να ενεργοποιήσουμε τη δυνατότητα καταγραφής στο HAProxy για μελλοντικό εντοπισμό σφαλμάτων. Ανοίξτε το κύριο αρχείο διαμόρφωσης HAProxy «/etc/haproxy/haproxy.cfg» με τον επεξεργαστή της επιλογής σας.

vim /etc/haproxy/haproxy.cfg

Στη συνέχεια, ακολουθήστε τις ειδικές οδηγίες διανομής για να διαμορφώσετε τη δυνατότητα καταγραφής στο HAProxy.

Σε RHEL/CentOS/Fedora

Στην ενότητα #Καθολικές ρυθμίσεις, ενεργοποιήστε την ακόλουθη γραμμή.

log         127.0.0.1 local2
Στο Ubuntu/Debian

Στην ενότητα #Καθολικές ρυθμίσεις, αντικαταστήστε τις ακόλουθες γραμμές,

log /dev/log        local0
log /dev/log        local1 notice 

Με,

log         127.0.0.1 local2

5. Στη συνέχεια, πρέπει να ενεργοποιήσουμε τη λήψη συστήματος καταγραφής UDP στο αρχείο διαμόρφωσης '/etc/rsyslog.conf' για να διαχωρίσουμε τα αρχεία καταγραφής για το HAProxy στο /var/log κατάλογο. Ανοίξτε το αρχείο σας «rsyslog.conf» με τον επεξεργαστή της επιλογής σας.

vim /etc/rsyslog.conf

Uncommnet ModLoad και UDPServerRun, Εδώ ο διακομιστής μας θα ακούσει τη Θύρα 514 για τη συλλογή των αρχείων καταγραφής στο σύστημα καταγραφής.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Στη συνέχεια, πρέπει να δημιουργήσουμε ένα ξεχωριστό αρχείο "haproxy.conf" στον κατάλογο "/etc/rsyslog.d/" για διαμόρφωση ξεχωριστά αρχεία καταγραφής.

vim /etc/rsyslog.d/haproxy.conf

Προσθέστε την ακόλουθη γραμμή στο νέο αρχείο.

local2.*	/var/log/haproxy.log

Τέλος, επανεκκινήστε την υπηρεσία rsyslog για να ενημερώσετε τις νέες αλλαγές.

service rsyslog restart