2015-10-10 9 views
15

Voglio eseguire www.example.com e api.example.com sulla stessa porta 80.Nginx più blocchi server che ascoltano la stessa porta

Questo è quello che ho. Tutti i miei googles ping portano al codice seguente. Ma questo non funziona.

server { 
     listen 80 default_server; 
#  listen [::]:80 default_server ipv6only=on; 

     root /var/www/example.com/html/example/app; 
     index index.html index.htm; 

     # Make site accessible from http://localhost/ 
     server_name www.example.com www.example.org; 

     location/{ 
       # First attempt to serve request as file, then 
       # as directory, then fall back to displaying a 404. 
       try_files $uri $uri/ =404; 
       # Uncomment to enable naxsi on this location 
       # include /etc/nginx/naxsi.rules 
     } 

     location /bower_components { 
       alias /var/www/example.com/html/example/bower_components; 
     } 

     location /scripts { 
       alias /var/www/example.com/html/example/scripts; 
     } 

     location /content { 
       alias /var/www/example.com/html/example/content; 
     } 

     location /api { 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_pass http://127.0.0.1:3836; 
     } 
} 

server { 
     listen 80 
     server_name api.example.com 

     location/{ 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_pass http://127.0.0.1:3836; 
     } 
} 

Non so il motivo. Qualche suggerimento su questo?

Grazie!

+0

La directory radice manca nell'host virtuale 'api.example.com'. – C1sc0

risposta

12

Creare separatamente due file (non c'è bisogno di, ma sarà molto più chiaro) a /etc/nginx/sites-available/www.example.com e /etc/nginx/sites-available/api.example.com

conten del file api.example.com

server { 
     listen 80 
     server_name api.example.com 
     root /var/www/api.example.com/html/example/app; #also add a root dir here 
     location/{ 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_pass http://127.0.0.1:3836; 
     } 
} 

Il www.example contenuti .it:

server { 
     listen 80 default_server; 
#  listen [::]:80 default_server ipv6only=on; 

     root /var/www/example.com/html/example/app; 
     index index.html index.htm; 

     # Make site accessible from http://localhost/ 
     server_name www.example.com www.example.org; 

     location/{ 
       # First attempt to serve request as file, then 
       # as directory, then fall back to displaying a 404. 
       try_files $uri $uri/ =404; 
       # Uncomment to enable naxsi on this location 
       # include /etc/nginx/naxsi.rules 
     } 

     location /bower_components { 
       alias /var/www/example.com/html/example/bower_components; 
     } 

     location /scripts { 
       alias /var/www/example.com/html/example/scripts; 
     } 

     location /content { 
       alias /var/www/example.com/html/example/content; 
     } 

     location /api { 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_pass http://127.0.0.1:3836; 
     } 
} 

e infine abilitare domini: sudo ln -s /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/www.example.com e sudo ln -s /etc/nginx/sites-available/api.example.com /etc/nginx/sites-enabled/api.example.com

+0

Non riesco a capire cosa intendi con "Aggiunga anche l'host virtuale www.example.com al tuo file di configurazione:". Potresti spiegare di più? –

+1

Se questo non funziona, qual è l'output del comando 'tail -f/var/log/nginx/error.log' se tenti di raggiungere la pagina web? – C1sc0

+0

Grazie mille. Ordinato. –

Problemi correlati