Pregunta:
Estoy tratando de empaquetar 2 aplicaciones que usan nginx como proxy y entregar cada una un archivo de configuración en /etc/nginx/conf.d/
.
Hacer esto en un archivo ( combined.conf
) funciona muy bien:
upstream backend1 {
http://localhost:8989;
}
upstream backend2 {
http://localhost:8990;
}
server {
location /backend1/ {
proxy_pass http://backend1;
}
location /backend2/ {
proxy_pass http://backend2;
}
Sin embargo, al dividir en 2 archivos, uno de los redireccionamientos falla sistemáticamente:
-
backend1.conf
:upstream backend1 { http://localhost:8989; } server { location /backend1/ { proxy_pass http://backend1; }
-
backend2.conf
:upstream backend2 { http://localhost:8990; } server { location /backend2/ { proxy_pass http://backend2; }
Entonces mi pregunta es: ¿un nodo http
puede tener 2 server
secundarios diferentes?
La documentación de Nginx no dice nada al respecto.
Sin embargo, otras personas parecen haber tenido éxito con este tipo de arquitectura 🙁
La versión de Nginx es 1.1.19-1ubuntu0.1.
¡Gracias por cualquier consejo!
Respuesta:
Después de tanto ruido y pruebas, encontré una manera de hacerlo funcionar y poder enviar un archivo de configuración por aplicación.
Aquí está, enviado en un archivo común y un par de archivos de ubicación / aguas arriba por aplicación:
-
/etc/nginx/conf.d/common-proxies.conf
:include /upstreams/*.conf; server { include /locations/*.conf }
-
/etc/nginx/locations/backend1.conf
location /backend1/ { upstream http://backend1; }
-
/etc/nginx/locations/backend2.conf
location /backend2/ { upstream http://backend2; }
-
/etc/nginx/upstreams/backend1.conf
upstream backend1 { http://localhost:8989; }
-
/etc/nginx/upstreams/backend2.conf
upstream backend2 { http://localhost:8990; }