2016-08-14 3 views
1

Ich habe 5 Lampe Container (tutum/lamp) mit Häfen wie folgt montiert:Wie konfiguriert man NGINX-Routen?

127.0.0.1:81:80 
127.0.0.1:82:80 
127.0.0.1:83:80 
127.0.0.1:84:80 
127.0.0.1:85:80 

Was ich ein NGINX vor ihnen setzen tun möchte, so dass sie an die entsprechenden Container Umleitungen auf die URL abhängig. Nehmen wir zum Beispiel an, dass die Host-IP 12.45.5.113 ist. Dann, wenn ich besuche, möchte ich auf die Homepage des Containers 127.0.0.1:81:80 umgeleitet werden, wenn ich 12.45.5.113/c2/ besuche, möchte ich zur Homepage des Containers 127.0.0.1:82:8010 und so weiter weitergeleitet werden.

Wie sollte die NGINX-Konfiguration aussehen? Sollte ich NGINX auf dem Host mit apt-get install installiert haben oder könnte es auch als zusätzlicher Container installiert werden?

Antwort

1

Ich denke, der einfachste Ansatz ist, nginx in Container zu starten.

docker run --port 80:80 --link c1 ... --link cn ... nginx 

mit Config wie (kann durch --volume Argument docker run von Host montiert werden):

{ 
    listen 80; 
    location /c1/ { 
     proxy_pass http://c1; 
    } 

    ... 
    location /cn/ { 
     proxy_pass http://cn; 
    } 
} 

diese Art und Weise wird es alle Anfragen umleiten, wie Sie wollen mit Docker Container Verbindungsmechanismus (alle Anforderung wird weitergeleitet durch bridge Netzwerk).

Weitere Informationen erhalten Sie Docker Dokumentation: https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/#/connect-with-the-linking-system

+0

Great! Vielen Dank. Ich habe jedoch eine letzte Frage: Ich habe festgestellt, dass "Echo" http: // '. $ _SERVER ['SERVER_NAME'] $ _SERVER ['REQUEST_URI']; 'enthält nicht den mittleren Pfad z.B. '/ c1 /', Nach einigem Suchen habe ich festgestellt, dass eine 'Rewrite Rule' auf dem NGINX-Level den Zweck erfüllen könnte. Irgendwelche Ideen? – user706838

+0

Hmm, bitte geben Sie ein Beispiel, weil ich nicht weiß, wonach Sie fragen. –

Verwandte Themen