
HAProxy tiene una página de estado muy bonita que me muestra qué servidores web están activos y cuáles no en el backend. Estoy tratando de depurar algunos problemas y necesito saber qué servidores cree nginx que están activos y cuáles cree que están inactivos. ¿Existe una página web o algo que pueda configurar para nginx para que pueda acceder a una URL cuando necesite este tipo de información?
gracias decano
Respuesta1
Hay un par de módulos que quizás quieras consultar:
- https://github.com/anomalizer/ngx_upstream_status(muestra el estado tal como lo ve el trabajador que atiende la página de estado)
- https://github.com/yaoweibin/nginx_upstream_check_module(comprueba proactivamente el estado de los servidores ascendentes)
- https://github.com/cep21/healthcheck_nginx_upstreams(similar al anterior pero solo admite HTTP 1.0 para verificaciones de estado)
- http://nginx.localdomain.pl/wiki/UpstreamFair(equilibrador de carga con página de estado incorporada)
- ...
Respuesta2
Desafortunadamente, esto es casi imposible desde el primer momento. vanila nginx no tiene un estado global para el flujo ascendente por diseño, por lo que esta información es local para cada proceso de trabajo.
Échale un vistazo a este módulo que parece que te puede resultar útil.http://wiki.nginx.org/NginxHttpHealthcheckModule
Respuesta3
Un año tarde para esta respuesta, pero el módulo ustats para nginx parece bastante impresionante:
https://code.google.com/p/ustats/
movido a githubhttps://github.com/0xc0dec/ustats
Desafortunadamente, no parece mantenerse después de 1.2, pero aún podría funcionar.
Encontré una bifurcación mantenidahttps://github.com/nginx-modules/ngx_ustats_module
El parche 1.7.2 todavía funciona perfectamente contra 1.7.4
Respuesta4
Estaba buscando un control de estado simple como el que ofrece Amazon ELB. Capacidad para agregar instancias en un LB, tener un mecanismo de verificación de estado para eliminar instancias defectuosas.
Así que aquí estaban mis opciones.
- https://github.com/yaoweibin/nginx_upstream_check_module
- https://github.com/openresty/lua-resty-upstream-healthcheck
Nginx también proporciona una verificación de estado pasiva de forma gratuita. Hace exactamente lo que quiero, sin monitoreo sofisticado, sin pesos, sin verificación de ruta sofisticada. Haría ping al servidor y verificaría la respuesta de estado 200. Lo haría en forma de todos contra todos.
El parámetro fail_timeout establece el tiempo durante el cual debe ocurrir el número especificado de intentos fallidos y aún considerar que el servidor no está disponible. En otras palabras, el servidor no está disponible durante el intervalo establecido por fail_timeout.
El parámetro max_fails establece la cantidad de intentos fallidos que deben ocurrir durante el tiempo especificado para seguir considerando que el servidor no está disponible.
P.ej:
upstream search { server 192.168.215.43:9200 max_fails=3 fail_timeout=10s; server 192.168.171.66:9200 max_fails=3 fail_timeout=10s; }