Actualización (28 de agosto de 2012): ahora tiendo a usar haproxyctl hoy en día, que utiliza los métodos que se describen a continuación.
Lo arreglé después de un poco más de investigación, para cualquier otra persona con el mismo problema:
Puede agregar un socket Unix en su configuración, luego interactuar con eso ( aquí están los posibles comandos ).
Para configurar:
sudo nano /etc/haproxy/haproxy.cfg
En su sección 'global' agregue:
stats socket /etc/haproxy/haproxysock level admin
Reinicia tu demonio haproxy (por ejemplo sudo service haproxy restart
)
Ahora necesita socat (si no lo tiene, solo apt-get install socat
en Ubuntu).
Ahora todo lo que necesita hacer es disparar este comando para eliminar un nodo:
echo "disable server yourbackendname/yourservername" | socat stdio /etc/haproxy/haproxysock
Para volver a ponerlo en marcha, reemplace disable con enable en el comando anterior.
socat /var/run/haproxy.stat stdio
para cada comandoEn el caso de que solo tenga acceso a netcat (
nc
), puede usarlo para interactuar con el archivo de socket de HAProxy de manera similar asocat
.Para deshabilitar un servidor:
Asegúrese de que el archivo de socket tenga el nivel de acceso adecuado para realizar lo anterior. Principalmente algo como esto:
De lo contrario, obtendrá permisos denegados errores:
Referencias
fuente
La manera fácil es:
1 - Configure su servidor web para que devuelva el código 503 si existe un archivo llamado maintenance.html (por ejemplo). Con apache puedes hacerlo de la siguiente manera:
2 - Configure su backend haproxy para verificar una URL en lugar de solo verificar un puerto de la siguiente manera:
3 - Reinicia tu servidor web y balanceador de carga.
4 - Pon tu servidor web en modo de mantenimiento.
5 - Elimine su servidor web del modo de mantenimiento.
fuente
También puede "eliminar" temporalmente la página de comprobación de estado de un servidor, para bajar el punto final y luego publicar su aplicación.
fuente
Si tiene Debian, readline no funciona, netcat es una mejor opción para interactiva:
No interactivo:
fuente