Requisits
Instal·lant HAProxy
Configuració de HAProxy
HAProxy és una aplicació de programari de xarxa que ofereix alta disponibilitat, equilibri de càrrega i servidor intermediari per a aplicacions de xarxa TCP i HTTP. És adequat per a llocs web d'alt trànsit i alimenta molts llocs populars al web. Aquest article us mostrarà com instal·lar i configurar HAProxy a Debian 9.1.
Tot i que HAProxy té diverses funcions destacades, aquest article se centra en com configurar HAProxy per "proxy" la vostra aplicació web.
Requisits
- Almenys dos servidors Vultr (per a la funcionalitat d'equilibri de càrrega) amb el vostre lloc web o aplicació web desplegada a tots dos.
Instal·lant HAProxy
Debian 9 ja s'envia amb HAProxy 1.7 (última versió estable en el moment d'escriure), i simplement podem instal·lar-lo mitjançant apt-get:
# apt-get update
# apt-get install haproxy
Si les ordres anteriors van tenir èxit, aleshores heu instal·lat HAProxy i podeu continuar amb el pas següent.
Configuració de HAProxy
El fitxer de configuració HAProxy es divideix en dues seccions: "global" i "proxies". Un tracta de la configuració de tot el procés, mentre que el segon consisteix en seccions de configuració predeterminada, interfície i backend.
Secció Global
Utilitzant el vostre editor de text preferit, obriu /etc/haproxy/haproxy.cfgi observeu les seccions predefinides: "global" i "predeterminats". El primer que podeu fer és augmentar la maxconnmida a una mida raonable, ja que això afecta les connexions que permet HAProxy. Massa connexions poden provocar que el vostre servei web es bloquegi a causa de moltes sol·licituds. Haureu d'ajustar la mida per veure què us funciona. A la secció global, hem escollit un maxconnvalor de 3072.
global
daemon
maxconn 3072
A la secció predeterminada, afegiu la línia següent a mode http:
option forwardfor
Això afegirà X-Forwarded-Forcapçaleres a cada sol·licitud, cosa que permet als vostres servidors backend conèixer l'adreça IP original de l'usuari.
A més, afegiu aquesta línia per habilitar el mode de tancament de connexió HTTP al costat del servidor, mantenint la capacitat de suportar el manteniment d'HTTP al costat del client. Això redueix la latència del costat del client i ajuda a conservar els recursos del servidor:
option http-server-close
Si voleu utilitzar Keep-alive tant al costat del client com al del servidor, podeu utilitzar-lo option http-keep-aliveen el seu lloc. Aquesta opció és especialment útil quan el cost d'establir una nova connexió al servidor és important en comparació amb el cost de recuperar el recurs sol·licitat.
Finalment, el fitxer de configuració resultant tindrà un aspecte semblant a això:
defaults
mode http
option forwardfor
option http-server-close
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
Secció de proxies
Per configurar el vostre servidor intermediari, haureu d'afegir dues seccions al fitxer de configuració per definir les dues parts del servidor intermediari: el servidor intermediari i el servidor intermediari.
Configuració Frontend
La interfície gestionarà les vostres connexions HTTP. Afegiu el següent al final del vostre haproxy.cfgfitxer:
frontend http-frontend
bind public_ip:80
reqadd X-Forwarded-Proto:\ http
default_backend wwwbackend
Assegureu-vos de substituir public_ipper l'adreça IP pública o el nom de domini del vostre servidor.
Configuració del backend
Configureu el vostre backend afegint les línies següents al final del fitxer de configuració:
backend wwwbackend
server 1-www server1_ip:80 check
server 2-www server2_ip:80 check
server 3-www server3_ip:80 check
La configuració del backend utilitzada aquí crea 3 connexions anomenades X-www. ( Xés 1, 2 o 3.) Cadascun d'ells correspon a una serverX_ip:80 adreça. (Substituïu serverX_ip-vos per les adreces IP de les instàncies de Vultr.) Això us permetrà equilibrar la càrrega entre cada servidor del conjunt de servidors especificat (suposant que cada adreça IP correspon a un servidor diferent). L' checkopció fa que l'equilibrador de càrrega realitzi comprovacions de salut al servidor.
Deseu el fitxer de configuració i reinicieu HAProxy:
service haproxy restart
Si tot funciona, podreu connectar-vos http://public_ip/(substituint-lo per la vostra IP pública o nom de domini tal com s'ha configurat al pas de la interfície) i veure el vostre lloc web.
Errors de depuració
Si la vostra instància HAProxy es nega a iniciar-se després de les vostres modificacions, és probable que tingueu un error en algun lloc del fitxer de configuració. Per obtenir missatges clars sobre el problema al fitxer de configuració, podeu provar d'iniciar HAProxy manualment amb aquesta ordre:
# haproxy -f /etc/haproxy/haproxy.cfg
Per exemple, si veieu una sortida com aquesta:
[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.
Aleshores, us heu oblidat d'especificar el número de port del servidor 1-www.