2017-12-06 7 views
1

Setup: Alle folgenden sind auf meinem Mac OS ausgeführt wird:Wie konfiguriere ich den nginx docker Container, um die localhost-Anwendung in einem anderen Port zu erkennen?

localhost: 8089 a nodejs REST api runing in my local, OUTSIDE of the nginx container, stand alone!

locahost: 80 nginx docker container

Ich war in der Lage statische Datei im nginx Docker Behälter zu dienen, aber wenn ich stellen Sie die Konfiguration für die nginx als:

http { 
    server { 
     location/{ 
      root /usr/share/nginx/html; 
     } 
     location /api/ { 
      proxy_pass http://localhost:8089; 
     } 
    } 
} 

aus irgendeinem Grunde, jeden localhost:80/api Anruf, der anzu richten annehmenAufruf zurückkehrt 404 nicht gefunden Seite

404 Not Found 

nginx/1.13.6 

Jede Idee, wo die Config ich falsch gemacht? Ich habe das Gefühl, dass ich localhost:8089 in nginx nicht verwenden sollte? Aber was soll ich dann benutzen?

Ein Beispiel kann hier https://github.com/adamchenwei/docker-nginx-playground

Antwort

1

Container ihre eigenen Netzwerk-Namespace/Vernetzung haben Stapel gefunden werden. So localhost innerhalb des Containers ist der localhost des Containers selbst.

Wenn Sie Docker für Mac ausführen, gibt es einen speziellen Hostnamen, der innerhalb des Containers verfügbar ist, mit dem Sie eine Verbindung zu Diensten herstellen können, die auf dem Host selbst ausgeführt werden. Weitere Informationen finden Sie in dieser Antwort. https://stackoverflow.com/a/43541732/1811501

Wenn Sie Docker unter Linux ausführen, können Sie mit dieser Antwort (in derselben Frage) die IP-Adresse finden, zu der eine Verbindung hergestellt werden soll. https://stackoverflow.com/a/31328031/1811501

Verwandte Themen