Mi sitio utiliza dos servidores de aplicaciones, a saber app1 y app2, por lo que en la configuración que tengo algo como esto:¿Se puede usar la directiva "include" dentro del bloque upstream de nginx?
upstream cluster {
server app1:8080;
server app2:8080;
}
Dado que cada vez que actualizar el código tengo que reiniciar ambos procesos del servidor y quiero el servicio sin molestias, voy a seguir estos pasos manualmente:
comentario
app1
dentro del bloque aguas arriba de modo que modificarlo en:upstream cluster { #server app1:8080; server app2:8080; }
Run
nginx -s reload
código de actualización en
app1
y reinicie el programa de servidor, y luego elimine el comentarioapp1
en el bloque de aguas arribarealice los pasos 1-3 para
app2
Me gustaría escribir una secuencia de comandos para ahorrar este trabajo tedioso, así que lo que espero hacer es esto:
han nombrado "disponibles", que contiene
app1.conf
yapp2.conf
en forma tanserver app1:8080;
otra carpeta denominada han "activado" para contener los enlaces blandos de
app1.conf
yapp2.conf
Modificar el sentido ascendente una carpeta clúster en
upstream cluster { include /usr/local/nginx/conf/enabled/*; }
Así que cada vez que tengo que deshabilitar cualquier servidor de aplicaciones puedo simplemente rem ove el enlace blando correspondiente de la carpeta "activado", y más tarde puede restaurar mediante la ejecución de
ln -s
Sin embargo, este enfoque no funcionaba bien ya que me dieron un mensaje de error de nginx diciendo:
[emerg]: "incluir" directiva no está permitido aquí en ....
es eso tan include
no puede no ser puesto en el bloque de aguas arriba? y me imagino que no estoy solo en este tipo de situaciones, deshabilitando y habilitando el servidor a veces, ¿cómo otras personas normalmente lidian con eso?
qué le sucede a saber qué versión ? –
Estaba usando lo último en ese momento, pero puede probarlo fácilmente modificando la configuración y ejecutando nginx -t para verificar. –