Wyszukiwanie w witrynie

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