nginx: a monte con più direttive del server?

Sto cercando di mettere in pacchetto 2 applicazioni che utilizzano nginx come proxy e consegnare each file di configuration in /etc/nginx/conf.d/ .

Fare questo in un file ( combined.conf ) funziona ottimamente:

  • Come cambiano il path root in nginx
  • nginx gzip Vary intestazione insieme alle intestazioni Vary esistenti
  • Imansible accedere a MediaWiki dopo averlo spostato da Apache a Nginx
  • Percorso root del dominio dinamico nginx basato sul nome host?
  • Abilita l'authorization di base e lo distriggers per le pagine secondarie?
  • nginx proxypass rewrite url base
  •   upstream backend1 { http://localhost:8989; } upstream backend2 { http://localhost:8990; } server { location /backend1/ { proxy_pass http://backend1; } location /backend2/ { proxy_pass http://backend2; } 

    Tuttavia, quando si divide in 2 file, uno dei reindirizzamenti non riesce sistematicamente:

    • 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; } 

    Quindi la mia domanda è: può un nodo http hanno 2 diversi server childs?

    La documentazione Nginx non dice nulla.

    Altre persone sembrano riuscite con questo tipo di architettura però 🙁

    La versione Nginx è 1.1.19-1ubuntu0.1.

    Grazie per qualsiasi consiglio!

    2 Solutions collect form web for “nginx: a monte con più direttive del server?”

    dopo così rumbling e test, ho immaginato un modo per farlo funzionare e essere in grado di spedire un file di configuration per applicazione.

    Qui viene inviato in un file comune e un paio di file upstream / location per applicazione:

    • /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; } 

    Un block http può avere molti figli di server. Tuttavia, nginx seleziona un block server per elaborare una richiesta. Quindi, la richiesta non vedrà mai la posizione backend2 perché corrisponde al primo block di server.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.