2013-04-25 15 views
9

Sto provando a configurare nginx su due porte con la stessa istanza, ad esempio sulla porta 80 e sulla porta 81, ma finora non ho avuto fortuna. Ecco un esempio di quello che sto cercando di fare:Come eseguire Nginx su più porte

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 

    server { 
     listen 80; 
     server_name chat.local.com; 

     location/{ 
      proxy_pass http://127.0.0.1:8080; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 

     } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 

    server { 
     listen 81; 
     server_name console.local.com; 
     location/{ 
      proxy_pass http://127.0.0.1:8888; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 
     } 
    } 
} 

Quando provo a fare funzionare console.local.com, mostra il contenuto da chat.local.com. C'è un modo per far funzionare nginx su due porte? Grazie in anticipo!

risposta

7

tua configurazione sembra ok

Credo che il problema è questo (mi corregga se sbaglio):

  • avete console.local.com in ascolto sulla porta 81,
  • che significa che è necessario accedervi come http://console.local.com:81/
  • quando si accede ad esso come http://console.local.com/ (nessuna porta esplicita quindi è impostata come predefinita sulla porta 80) nginx controllerà, si noti che l'avviso è in ascolto sulla porta 80 per quel nome_server, e contro equamente passerà la richiesta al blocco predefinito del server. Poiché il blocco del server di default è il primo (in assenza di configurazione per cambiarlo) si finisce nella gestione di chat.local.com.

In tutto likelyhood si desidera cambiare la vostra console.local.com per l'ascolto sulla porta 80 anche dal:

  • direttiva nome_server in entrambe le serverblocks è sufficiente per differenziare le richieste
  • che evita devi aggiungere: 81 al nome dominio nelle richieste tutte le volte
+0

Ciao Cobaco, ho completamente dimenticato al punto che avrei bisogno di accedere alla pagina con la porta 81. Grazie per aver ricordato quel punto. – Uday

3

È possibile aggiungere la dichiarazione di ascolto 2 volte semplice; come sotto
ascolta 80;
ascolta 81;

Questo dovrebbe funzionare con nginx

Problemi correlati