¿Existe una interfaz programática para la configuración de nginx?

8

Estoy usando nginx como equilibrador de carga frente a las instancias de mi servidor web. Ejecuto 4 instancias del servidor web y distribuyo el tráfico por igual a través de ellas usando nginx. Cuando estoy implementando una nueva versión, cambio el nginx.conf y marco el primer 2 de los 4 servidores, luego reinicio nginx. Actualizo el código del servidor y reinicio los primeros 2 servidores. Luego edito nginx.conf para indicar que los primeros 2 servidores están activos y marcar los otros 2 inactivos, nuevamente reiniciar nginx. Luego actualizo y reinicio otras dos instancias. Nuevamente actualice el nginx.conf marcando todos los servidores y el reinicio final de nginx.

Tengo que hacer este proceso varias veces en algunos días. La realización manual de los pasos anteriores cada vez resulta propensa a errores.

¿Existe un acceso programático a nginx / nginx.conf para poder automatizar este proceso?

[La única forma en que me imagino ahora es escribir los pasos anteriores en el script de shell]

Jayesh
fuente
3
Lo que estás haciendo parece muy extraño. Establezca fail_timeout5 en cada uno de sus backends, elimine dos de ellos y NGINX lo recogerá y redirigirá todo el tráfico a los dos segundos nodos. Actualice su código, espere 5 segundos (o sea cual sea su valor de tiempo de espera) y NGINX comenzará a usar los dos primeros servidores, luego retire los segundos dos y repita. NGINX juega muy bien con ese tipo de configuración
Smudge

Respuestas:

3

No, nginx no tiene una API de configuración.

Aunque hay casos en los que es posible que deba marcar manualmente los servidores como inactivos, la configuración general de proxy_next_upstream + fail_timeout funcionará.

sendmoreinfo
fuente
3

Ahora hay nginx-conf , un módulo NPM que proporciona acceso programático a configuraciones nginx.

Steve Bennett
fuente