


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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)

So starten Sie den Docker -Container neu: Holen Sie sich die Container -ID (Docker PS); Stop den Container (Docker Stop & lt; Container_id & gt;); Starten Sie den Container (Docker start & lt; container_id & gt;); Stellen Sie sicher, dass der Neustart erfolgreich ist (Docker PS). Andere Methoden: Docker Compose (Docker-Compose Neustart) oder Docker-API (siehe Docker-Dokumentation).

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Docker Process Viewing -Methode: 1. Docker Cli -Befehl: Docker PS; 2. SYSTEMD CLI -Befehl: SystemCTL Status Docker; 3.. Docker Compose CLI Command: Docker-Compose PS; 4. Process Explorer (Windows); 5. /proc -Verzeichnis (Linux).

Fehlerbehebung Schritte für fehlgeschlagene Docker -Bild Build: Überprüfen Sie die Dockerfile -Syntax und die Abhängigkeitsversion. Überprüfen Sie, ob der Build -Kontext den erforderlichen Quellcode und die erforderlichen Abhängigkeiten enthält. Sehen Sie sich das Build -Protokoll für Fehlerdetails an. Verwenden Sie die Option -Target -Option, um eine hierarchische Phase zu erstellen, um Fehlerpunkte zu identifizieren. Verwenden Sie die neueste Version von Docker Engine. Erstellen Sie das Bild mit--t [Bildname]: Debugg-Modus, um das Problem zu debuggen. Überprüfen Sie den Speicherplatz und stellen Sie sicher, dass dies ausreicht. Deaktivieren Sie Selinux, um eine Störung des Build -Prozesses zu verhindern. Fragen Sie Community -Plattformen um Hilfe, stellen Sie Dockerfiles an und erstellen Sie Protokollbeschreibungen für genauere Vorschläge.
