Zahtjevi
Instalacija HAProxy
Konfiguriranje HAProxy
HAProxy je mrežna softverska aplikacija koja nudi visoku dostupnost, balansiranje opterećenja i proxy za TCP i HTTP mrežne aplikacije. Pogodan je za web-mjesta s velikim prometom i pokreće mnoge popularne web stranice na webu. Ovaj članak će vam pokazati kako instalirati i konfigurirati HAProxy na Debian 9.1.
Iako HAProxy ima nekoliko istaknutih značajki, ovaj se članak usredotočuje na to kako postaviti HAProxy da "proxy" vašu web aplikaciju.
Zahtjevi
- Najmanje dva Vultr poslužitelja (za funkciju balansiranja opterećenja) s vašom web-stranicom ili web aplikacijom koja je raspoređena na oba.
Instalacija HAProxy
Debian 9 se već isporučuje s HAProxy 1.7 (najnovije stabilno izdanje u trenutku pisanja), a možemo ga jednostavno instalirati pomoću apt-get:
# apt-get update
# apt-get install haproxy
Ako su prethodne naredbe bile uspješne, onda ste instalirali HAProxy i možete nastaviti na sljedeći korak.
Konfiguriranje HAProxy
HAProxy konfiguracijska datoteka podijeljena je u dva odjeljka — "globalni" i "proxy". Jedan se bavi konfiguracijom cijelog procesa, dok se potonji sastoji od zadane konfiguracije, frontenda i backend odjeljaka.
Globalni odjel
Koristeći svoj omiljeni uređivač teksta, otvorite /etc/haproxy/haproxy.cfgi primijetite unaprijed definirane odjeljke: "globalno" i "zadano". Prva stvar koju biste mogli učiniti je povećati maxconnna razumnu veličinu, jer to utječe na veze koje HAProxy dopušta. Previše veza može uzrokovati pad vaše web usluge zbog mnogih zahtjeva. Morat ćete prilagoditi veličinu da vidite što vam odgovara. U globalnom odjeljku odabrali smo maxconnvrijednost od 3072.
global
daemon
maxconn 3072
U zadanom odjeljku dodajte sljedeći redak pod način http:
option forwardfor
Ovo će dodati X-Forwarded-Forzaglavlja svakom zahtjevu, što omogućuje vašim pozadinskim poslužiteljima da saznaju izvornu IP adresu korisnika.
Također, dodajte ovaj redak kako biste omogućili način zatvaranja HTTP veze na strani poslužitelja, a zadržali mogućnost podrške održavanju HTTP-a na strani klijenta. To smanjuje kašnjenje na strani klijenta i pomaže u očuvanju resursa poslužitelja:
option http-server-close
Ako želite koristiti Keep-alive i na strani klijenta i na strani poslužitelja, možete koristiti option http-keep-aliveumjesto toga. Ova je opcija osobito korisna kada je trošak uspostavljanja nove veze s poslužiteljem značajan u usporedbi s troškom dohvaćanja traženog resursa.
Konačno, rezultirajuća konfiguracijska datoteka izgledat će otprilike ovako:
defaults
mode http
option forwardfor
option http-server-close
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
Odjeljak za opunomoćenike
Da biste postavili proxy, morat ćete dodati dva odjeljka u konfiguracijsku datoteku kako biste definirali dva dijela proxyja: frontend i backend.
Frontend konfiguracija
Frontend će upravljati vašim HTTP vezama. Dodajte sljedeće na kraj svoje haproxy.cfgdatoteke:
frontend http-frontend
bind public_ip:80
reqadd X-Forwarded-Proto:\ http
default_backend wwwbackend
Obavezno zamijenite public_ipjavnom IP adresom ili imenom domene vašeg poslužitelja.
Pozadinska konfiguracija
Postavite svoju pozadinu dodavanjem sljedećih redaka na kraj vaše konfiguracijske datoteke:
backend wwwbackend
server 1-www server1_ip:80 check
server 2-www server2_ip:80 check
server 3-www server3_ip:80 check
Pozadinska konfiguracija koja se ovdje koristi stvara 3 veze pod nazivom X-www. ( Xje 1, 2 ili 3.) Svaki od njih odgovara serverX_ip:80 adresi. (Zamijenite serverX_ipIP adresama vaših Vultr instanci.) To će vam omogućiti da uravnotežite opterećenje između svakog poslužitelja u navedenom skupu poslužitelja (pod pretpostavkom da svaka IP adresa odgovara drugom poslužitelju). checkOpcija čini opterećenje balansiranje obavljanje zdravstvenih pregleda na poslužitelju.
Spremite konfiguracijsku datoteku, a zatim ponovno pokrenite HAProxy:
service haproxy restart
Ako sve radi, moći ćete se povezati http://public_ip/(zamijenivši ga svojim javnim IP-om ili imenom domene kako je konfigurirano u prednjem koraku) i vidjeti svoju web stranicu.
Pogreške u otklanjanju pogrešaka
Ako se vaša HAProxy instanca odbije pokrenuti nakon vaših izmjena, velika je vjerojatnost da imate pogrešku negdje u konfiguracijskoj datoteci. Da biste dobili jasne poruke o problemu u konfiguracijskoj datoteci, možete pokušati ručno pokrenuti HAProxy pomoću ove naredbe:
# haproxy -f /etc/haproxy/haproxy.cfg
Na primjer, ako vidite ovakav izlaz:
[ALERT] 234/195612 (2561) : parsing [/etc/haproxy/haproxy.cfg:48] : server 1-www has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 234/195612 (2561) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 234/195612 (2561) : Fatal errors found in configuration.
Zatim ste zaboravili navesti broj porta za poslužitelj 1-www.