https://manuais.iessanclemente.net/index.php?title=Balanceo_de_carga_con_Haproxy&feed=atom&action=history
Balanceo de carga con Haproxy - Historial de revisiones
2024-03-29T13:05:09Z
Historial de revisiones de esta página en el wiki
MediaWiki 1.36.2
https://manuais.iessanclemente.net/index.php?title=Balanceo_de_carga_con_Haproxy&diff=51354&oldid=prev
Veiga en 19:44 23 nov 2014
2014-11-23T19:44:18Z
<p></p>
<p><b>Página nueva</b></p><div>Con '''HAPROXY''' podemos montar un servidor frontal que proporcione balanceo de carga en el acceso a nuestros servidores web.<br />
<br />
Si queremos redimensionar nuestra web, podríamos tener instalados varios servidores web encargados de gestionar nuestro dominio y como frontend de los mismos un equipo con haproxy instalado encargado de repartir las peticiones entre los distintos servidores web.<br />
<br />
'''Para instalar haproxy en Debian:'''<br />
<br />
<source lang="bash"><br />
<br />
# Instalación de haproxy en Debian<br />
apt-get update<br />
apt-get upgrade<br />
apt-get install haproxy<br />
<br />
# Una vez instalado, configuramos haproxy:<br />
nano /etc/haproxy/haproxy.cfg<br />
<br />
# Ejemplo de contenido de un fichero haproxy:<br />
# Los servidores locales tienen las IP's 192.168.220.10 y 192.168.220.20 respectivamente.<br />
# Esta configuración estaría en el servidor frontal encargado de gestionar todas las peticiones externas a la web.<br />
<br />
global<br />
log /dev/log local0<br />
chroot /var/lib/haproxy<br />
user haproxy<br />
group haproxy<br />
daemon<br />
<br />
defaults<br />
log global<br />
timeout client 100s<br />
timeout server 100s<br />
timeout queue 60s<br />
timeout connect 5s<br />
timeout http-keep-alive 1s<br />
timeout http-request 4s # slowloris protection<br />
<br />
option tcp-smart-accept<br />
option tcp-smart-connect<br />
option abortonclose<br />
option redispatch<br />
option contstats<br />
<br />
maxconn 6000<br />
retries 3<br />
<br />
frontend Accesos_HTTP<br />
bind *:80<br />
mode http<br />
option httpclose<br />
option http-server-close<br />
option forwardfor<br />
<br />
# Protección DDOS<br />
stick-table type ip size 100k expire 30s store conn_rate(3s)<br />
<br />
# Cortar la conexión si el cliente hace más de 10 peticiones<br />
tcp-request connection reject if { src_conn_rate ge 10 }<br />
tcp-request connection track-sc1 src<br />
<br />
http-request set-header X-Forwarded-Port %[dst_port]<br />
http-request add-header X-Forwarded-Proto https if { ssl_fc }<br />
option httplog<br />
<br />
# Reparto de tráfico estático directamente hacia los servidores web.<br />
use_backend Granja_puerto_80 { path_end .jpg .png .gif .css .js }<br />
<br />
default_backend Granja_puerto_80<br />
<br />
frontend Accesos_HTTPS<br />
bind *:443<br />
mode tcp<br />
default_backend Granja_puerto_443<br />
<br />
backend Granja_puerto_80<br />
mode http<br />
balance roundrobin<br />
server mestre1 192.168.220.10:80 maxconn 400 check<br />
server mestre2 192.168.220.20:80 maxconn 400 check<br />
<br />
backend Granja_puerto_443<br />
mode tcp<br />
balance roundrobin<br />
stick-table type ip size 200k expire 30m<br />
stick on src<br />
server servidor1 192.168.220.10:443 maxconn 400 check<br />
server servidor2 192.168.220.20:443 maxconn 400 check<br />
<br />
# Acceso a estadisticas de haproxy<br />
listen stats :4443<br />
mode http<br />
stats enable<br />
stats hide-version<br />
stats realm Balanceador Haproxy\ Estadisticas<br />
stats uri /<br />
stats refresh 5s<br />
stats auth admin:xxxxxxxxxxx<br />
<br />
</source><br />
<br />
'''Más información sobre parámetros y configuraciones en: http://www.haproxy.org/'''<br />
<br />
--[[Usuario:Veiga|Veiga]] ([[Usuario discusión:Veiga|discusión]]) 20:40 23 nov 2014 (CET)</div>
Veiga