Krav
Installerer HAProxy
Konfigurering av HAProxy
HAProxy er en nettverksprogramvare som tilbyr høy tilgjengelighet, lastbalansering og proxying for TCP- og HTTP-nettverksapplikasjoner. Den er egnet for nettsteder med høy trafikk, og driver mange populære nettsteder på nettet. Denne artikkelen vil vise deg hvordan du installerer og konfigurerer HAProxy på Debian 9.1.
Selv om HAProxy har flere fremtredende funksjoner, fokuserer denne artikkelen på hvordan du konfigurerer HAProxy til å "proxy" nettapplikasjonen din.
Krav
- Minst to Vultr-servere (for lastbalanseringsfunksjonalitet) med nettstedet ditt eller nettapplikasjonen din distribuert til begge.
Installerer HAProxy
Debian 9 leveres allerede med HAProxy 1.7 (siste stabile utgivelse i skrivende stund), og vi kan ganske enkelt installere den ved å bruke apt-get:
# apt-get update
# apt-get install haproxy
Hvis de forrige kommandoene var vellykkede, har du installert HAProxy og du kan fortsette til neste trinn.
Konfigurering av HAProxy
HAProxy-konfigurasjonsfilen er delt opp i to seksjoner - "global" og "proxies". Den ene omhandler prosess-omfattende konfigurasjon, mens sistnevnte består av standardkonfigurasjon, frontend og backend-seksjoner.
Global seksjon
Bruk favoritttekstredigeringsprogrammet ditt, åpne /etc/haproxy/haproxy.cfgog legg merke til de forhåndsdefinerte delene: "global" og "standard". Det første du kanskje vil gjøre er å øke maxconntil en rimelig størrelse, da dette påvirker tilkoblingene som HAProxy tillater. For mange tilkoblinger kan føre til at nettjenesten din krasjer på grunn av mange forespørsler. Du må justere størrelsen for å se hva som fungerer for deg. I den globale delen har vi valgt en maxconnverdi på 3072.
global
daemon
maxconn 3072
I standarddelen legger du til følgende linje under modus http:
option forwardfor
Dette vil legge til X-Forwarded-Foroverskrifter til hver forespørsel, som lar backend-serverne dine lære brukerens opprinnelige IP-adresse.
Legg også til denne linjen for å aktivere HTTP-tilkoblingslukkingsmodus på serversiden mens du beholder muligheten til å støtte HTTP Keep-alive på klientsiden. Dette reduserer ventetiden på klientsiden og bidrar til å spare serverressurser:
option http-server-close
Hvis du ønsker å bruke keep-alive på både klient- og serversiden, kan du bruke i option http-keep-alivestedet. Dette alternativet er spesielt nyttig når kostnaden for å etablere en ny tilkobling til serveren er betydelig sammenlignet med kostnaden for å hente den forespurte ressursen.
Til slutt vil den resulterende konfigurasjonsfilen se omtrent slik ut:
defaults
mode http
option forwardfor
option http-server-close
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
Fullmaktsseksjonen
For å sette opp proxyen din, må du legge til to seksjoner i konfigurasjonsfilen for å definere de to delene av proxyen: frontend og backend.
Frontend-konfigurasjon
Frontend vil håndtere HTTP-tilkoblingene dine. Legg til følgende på slutten av haproxy.cfgfilen:
frontend http-frontend
bind public_ip:80
reqadd X-Forwarded-Proto:\ http
default_backend wwwbackend
Pass på å erstatte public_ipmed serverens offentlige IP-adresse eller domenenavn.
Backend-konfigurasjon
Sett opp backend ved å legge til følgende linjer på slutten av konfigurasjonsfilen:
backend wwwbackend
server 1-www server1_ip:80 check
server 2-www server2_ip:80 check
server 3-www server3_ip:80 check
Backend-konfigurasjonen som brukes her oppretter 3 tilkoblinger som heter X-www. ( Xer 1, 2 eller 3.) Hver av dem tilsvarer en serverX_ip:80 adresse. (Erstatt serverX_ipmed IP-adressene til Vultr-forekomstene.) Dette vil tillate deg å laste balanse mellom hver server i det angitte serversettet (forutsatt at hver IP-adresse tilsvarer en annen server). Det checkalternativet gjør lastbalansering utføre helsekontroller på serveren.
Lagre konfigurasjonsfilen, og start deretter HAProxy på nytt:
service haproxy restart
Hvis alt fungerer, vil du kunne koble til http://public_ip/(erstatte det med din offentlige IP- eller domenenavn som konfigurert i frontend-trinnet) og se nettstedet ditt.
Feilsøkingsfeil
Hvis HAProxy-forekomsten din nekter å starte etter endringene dine, er sjansen stor for at du har en feil et sted i konfigurasjonsfilen. For å få klare meldinger om problemet i konfigurasjonsfilen, kan du prøve å starte HAProxy manuelt ved å bruke denne kommandoen:
# haproxy -f /etc/haproxy/haproxy.cfg
For eksempel, hvis du ser utdata som dette:
[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.
Da har du glemt å spesifisere portnummeret for serveren 1-www.