Πώς να ρυθμίσετε το 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