2017-09-19 3 views
1

Ich habe einige statische Dateien, auf die ich bereits zugreifen kann, und ich habe eine API, bereits bei Digital Ocean.Nginx-Konfiguration für NodeJS API

Aber ich habe etwas Trouble konfigurieren NGINX für den Zugriff auf beide zur gleichen Zeit. Wenn meine API funktioniert, nicht die statischen Dateien. Und umgekehrt;

Meine API läuft auf Port 5000, und ich möchte auf die Website und die API nach IP-Adresse zugreifen.

Pls, hilfe!

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 

    root /var/www/html; 

    server_name _; 

    location/{ 

     try_files $uri $uri/ =404; 

    } 

} 

server { 

    location/{ 
     proxy_pass http://localhost:5000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

Antwort

1

Wenn beide Dienste von derselben IP-Adresse und Port zugegriffen wird, dann müssen Sie ein server Block verwenden. Idealerweise würden Sie die API in einen eindeutigen URI, zum Beispiel verschieben:

location/{ 
    try_files $uri $uri/ =404; 
} 
location /api/ { 
    proxy_pass ...; 
    ... 
} 

Wenn Sie eine überlappende URI Raum für statische Dateien und die API verwenden, müssen Sie try_files zu überprüfen, für die Existenz eines statischen verwenden können Datei zuerst:

location/{ 
    try_files $uri $uri/ @proxy; 
} 
location @proxy { 
    proxy_pass ...; 
    ... 
} 

Siehe this document für mehr.