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, cuando se divide 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: ¿puede un httpnodo tener 2 serverhijos 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!

Respuestas:
Después de tanto ruido y pruebas, descubrí una forma 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 ascendentes / de ubicación por aplicación:
/etc/nginx/conf.d/common-proxies.conf:/etc/nginx/locations/backend1.conf/etc/nginx/locations/backend2.conf/etc/nginx/upstreams/backend1.conf/etc/nginx/upstreams/backend2.conffuente
upstream backend { server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; }. Además, esto funciona con el;:)Un bloque http puede tener muchos servidores secundarios. Sin embargo, nginx selecciona un bloque de servidor para procesar una solicitud. Por lo tanto, la solicitud nunca "ve" la ubicación del backend2 porque coincide con el primer bloque del servidor.
fuente
locationdirectiva la que apesta y toma la solicitud destinada para backend2?serverbloques cuando nginx busca el apropiadoserverpara reenviar la solicitud?