Najkrócej mówiąc, skonfigurujemy maszyny tak, aby równomiernie rozłożyć obciążenie na dwie maszyny obsługujące Apache oraz dwie z Proxy. Dzięki czemu w przypadku uszkodzenie jednego z wezłów zachowamy działanie naszej infrastruktury.
LB1/LB2 lub HTTP1/HTTP2 oznaczają, że opisane czynności trzeba wykonać na odpowiednich maszynach.
- route’ować pakiety HTTP na podstawie zawartych Cookie
- przełączać ruch na inny serwer w przypadku wykrycia awarii
- blokować requesty HTTP na podstawie analizy nagłówków
- generować statystyki ruchu/usług
- modyfikować nagłówki HTTP w locie (coś dodać, coś usunąć, coś zmodyfikować)
- zatrzymać przyjmowanie nowych połączeń bez zrywania nawiązanych
- i wiele wiele więcej
0) Informacje podstawowe:
Potrzebować będziemy 4 maszyn z systemem Debian Lenny:
Load Balancer 1: lb1.example.com, IP address: 192.168.1.100
Load Balancer 2: lb2.example.com, IP address: 192.168.1.101
HTTP 1: http1.example.com, IP address: 192.168.1.102
HTTP 2: http2.example.com, IP address: 192.168.1.103
Wirtualny adres IP łączący LB1 oraz LB2: 192.168.1.99
Diagram
Łącznik IP=192.168.1.99
192.168.1.100 192.168.1.101 192.168.1.102 192.168.1.103
——-+————+————–+———–+———-
| | | |
+–+–+ +–+–+ +—-+—-+ +—-+—-+
| LB1 | | LB2 | | HTTP1 | | HTTP2 |
+—–+ +—–+ +———+ +———+
haproxy haproxy 2xApache
1) HAProxy – transparentne proxy (HTTP1/HTTP2):
nano /etc/apache2/apache2.conf
dodajemy do niego:
LogFormat „%{X-Forwarded-For}i %l %u %t „%r” %>s %b „%{Referer}i” „%{User-Agent}i”” combined
będziemy sprawdzać kondycję naszych maszyn:
nano /etc/apache2/sites-available/default
2)Instalacja HAProxy (LB1/LB2):
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).