Jak skonfigurować moduł równoważenia obciążenia o wysokiej dostępności za pomocą „HAProxy”, aby kontrolować ruch serwera internetowego
HAProxy oznacza serwer proxy o wysokiej dostępności. Jest to bezpłatna aplikacja typu open source napisana w języku programowania C. Aplikacja HAProxy jest używana jako moduł równoważenia obciążenia TCP/HTTP i rozwiązań proxy. Najczęstszym zastosowaniem aplikacji HAProxy jest rozłożenie obciążenia na wiele serwerów, np. serwer WWW, serwer bazy danych itp., poprawiając w ten sposób ogólną wydajność i niezawodność środowiska serwerowego.
Z tej wysoce wydajnej i szybkiej aplikacji korzysta wiele renomowanych organizacji na całym świecie, do których zaliczają się między innymi Twitter, Reddit, GitHub i Amazon. Jest dostępny dla platform Linux, BSD, Solaris i AIX.
W tym samouczku omówimy proces konfigurowania modułu równoważenia obciążenia o wysokiej dostępności przy użyciu HAProxy do kontrolowania ruchu aplikacji opartych na HTTP (serwerów internetowych) poprzez rozdzielanie żądań na wiele serwerów.
W tym artykule używamy najnowszej stabilnej wersji HAProxy, tj. 1.5.10 wydanej 31 grudnia 2014 r. Używamy także do tego CentOS 6.5 setup, ale poniższe instrukcje działają również w dystrybucjach CentOS/RHEL/Fedora i Ubuntu/Debian.
Konfiguracja mojego środowiska
Tutaj nasz serwer HAProxy z równoważeniem obciążenia, mający nazwę hosta websrv.tecmintlocal.com i adres IP 192.168.0.125.
Konfiguracja serwera HAProxy
Operating System : CentOS 6.5
IP Address : 192.168.0.125
Hostname : websrv.tecmintlocal.com
Konfiguracja serwerów WWW klienta
Pozostałe cztery komputery działają z serwerami internetowymi, takimi jak 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]
Krok 1: Instalacja Apache na komputerach klienckich
1. Najpierw musimy zainstalować Apache na wszystkich czterech serwerach i udostępnić dowolną witrynę, aby zainstalować Apache na wszystkich czterech serwerach, użyjemy następującego polecenia.
yum install httpd [On RedHat based Systems]
apt-get install apache2 [On Debian based Systems]
2. Po zainstalowaniu serwera WWW Apache na wszystkich czterech komputerach klienckich możesz sprawdzić, czy na dowolnym serwerze Apache działa, uzyskując do niego dostęp poprzez adres IP w przeglądarce.
http://192.168.0.121
Krok 2: Instalacja serwera HAProxy
3. W większości współczesnych dystrybucji Linuksa HAPRoxy można łatwo zainstalować z domyślnego repozytorium podstawowego przy użyciu domyślnego menedżera pakietów yum lub apt-get .
Na przykład, aby zainstalować HAProxy w wersjach RHEL/CentOS/Fedora i Debian/Ubuntu, uruchom następujące polecenie. Tutaj dołączyłem także pakiet openssl, ponieważ będziemy konfigurować HAProxy z obsługą SSL i NON-SSL.
yum install haproxy openssl-devel [On RedHat based Systems]
apt-get install haproxy [On Debian based Systems]
Uwaga: w Debianie Whezzy 7.0 musimy włączyć repozytorium backportów, dodając nowy plik backports.list >w katalogu „/etc/apt/sources.list.d/” z następującą zawartością.
echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list
Następnie zaktualizuj bazę danych repozytorium i zainstaluj HAProxy.
apt-get update
apt-get install haproxy -t wheezy-backports
Krok 3: Skonfiguruj dzienniki HAProxy
4. Następnie musimy włączyć funkcję rejestrowania w HAProxy na potrzeby przyszłego debugowania. Otwórz główny plik konfiguracyjny HAProxy „/etc/haproxy/haproxy.cfg” z wybranym edytorem.
vim /etc/haproxy/haproxy.cfg
Następnie postępuj zgodnie z instrukcjami specyficznymi dla dystrybucji, aby skonfigurować funkcję rejestrowania w HAProxy.
W RHEL/CentOS/Fedorze
W sekcji #Ustawienia globalne włącz następujący wiersz.
log 127.0.0.1 local2
Na Ubuntu/Debianie
W obszarze #Ustawienia globalne zamień następujące wiersze:
log /dev/log local0
log /dev/log local1 notice
Z,
log 127.0.0.1 local2
5. Następnie musimy włączyć odbiór syslog UDP w pliku konfiguracyjnym „/etc/rsyslog.conf”, aby oddzielić pliki dziennika dla HAProxy w katalogu /var/log katalog. Otwórz plik „rsyslog.conf” w wybranym przez siebie edytorze.
vim /etc/rsyslog.conf
Uncommnet ModLoad i UDPServerRun, tutaj nasz serwer będzie nasłuchiwał portu 514, aby zebrać logi do syslog.
Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
6. Następnie musimy utworzyć osobny plik „haproxy.conf” w katalogu „/etc/rsyslog.d/”, aby skonfigurować oddzielne pliki dziennika.
vim /etc/rsyslog.d/haproxy.conf
Dołącz następujący wiersz do nowo utworzonego pliku.
local2.* /var/log/haproxy.log
Na koniec uruchom ponownie usługę rsyslog, aby zaktualizować nowe zmiany.
service rsyslog restart