Heim >Betrieb und Instandhaltung >Nginx >Verwenden Sie Nginx, um mehrere Docker-Container als Reverse-Proxy zu verwenden
Einführung
Als ich Docker vorstellte, sagte ich, dass einer seiner Vorteile darin besteht, dass es mehrere Umgebungen auf demselben Server erstellen und diese voneinander isolieren kann. Ich habe gestern den eigentlichen Vorgang durchgeführt und hätte nie erwartet, dass es so viele Fallstricke geben würde und dass es zeitaufwändiger sein würde, als zuvor einen Server von Grund auf neu zu erstellen. Nachdem ich mehrere Pläne geändert habe, habe ich es endlich gelöst. Ich werde die Traurigkeit in der Mitte ignorieren und nur über die Operationsmethode sprechen.
Empfohlenes Tutorial: Nginx-Tutorial
Architektur
Das Laradock-Image ist bereits auf dem Server vorhanden, auf dem Laravel ausgeführt werden kann Umgebung und anderes PHP umfassen Nginx, MySQL, Redis usw.
Meine Idee ist, einen weiteren Nginx-Container für den Reverse-Proxy hinzuzufügen. Nach Subdomain-Namen verteilen, kann an Laradock oder an jeden anderen Container (einschließlich WordPress, Python, Java) usw. verteilt werden.
Lradock ändern
Zu sein geändert Es gibt nur einen Ort, nämlich den Port, den Nginx abhört.
1. Geben Sie das Laradock-Verzeichnis ein
2. Ändern Sie die .env-Datei und ändern Sie den NGINX_HOST_HTTP_PORT-Wert von 80 auf 8000
3
4. Installieren Sie Nginx neu, Docker-Compose Build Nginx
5. Starten Sie Docker-Compose Up -d Nginx
Zu diesem Zeitpunkt können Sie im Browser nicht erfolgreich darauf zugreifen . Weil Nginx nicht mehr auf Port 80 lauscht.
Nginx-Container hinzufügen
Neuen Nginx-Container für Reverse-Proxy hinzufügen. Bei der Installation von Laradock ist bereits ein Image von nginx:alpine vorhanden und der Container kann direkt generiert werden. Natürlich können Sie auch wieder ein neues Bild ziehen. (Alpine-Version wird empfohlen)
1. Überprüfen Sie die Nginx-Image-ID, Docker-Iamges
2. Erzeugen Sie einen neuen Nixn-Container, Docker run --name Proxy_nginx -p 80:80 -d [ Nginx-Image-ID]. Sie können auch den Parameter -v hinzufügen, um die Konfigurationsdatei zuzuordnen, die in meiner Umgebung mit weniger Änderungen nicht benötigt wird
3 Wenn Sie zu diesem Zeitpunkt im Browser darauf zugreifen, sollte es sich um die Standardseite von Nginx handeln. Zeigt an, dass der Start erfolgreich war
4. Geben Sie den generierten Container „docker exec -it Proxy_nginx sh“ ein , /sbin/ip route |. awk '/default/ { print $3 }'
7. Fügen Sie eine neue Konfigurationsdatei laradock.conf im Verzeichnis /etc/nginx/conf.d/ mit dem folgenden Inhalt hinzu
server { listen 80; server_name you_site; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[宿主机IP]:8000; } }
1. Beenden Sie den Container und starten Sie dann den Docker-Restart-Proxy_nginx
Öffnen Sie Port 8000, siehe hier
FazitWenn Sie zu diesem Zeitpunkt besuchen, können Sie einen Proxy für Laradock Nginx darin erstellen. Wenn Sie später weitere Container hinzufügen möchten, müssen Sie nur neue Proxy-Regeln in Proxy_nginx hinzufügen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie Nginx, um mehrere Docker-Container als Reverse-Proxy zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!