Heim >Backend-Entwicklung >PHP-Tutorial >Hochverfügbare Bereitstellung von PHP-Anwendungen mit Docker Compose und Nginx
Hochverfügbare Bereitstellung von PHP-Anwendungen durch Docker Compose und Nginx
In der modernen Webanwendungsentwicklung ist Hochverfügbarkeit ein sehr wichtiger Faktor. Durch die Verwendung von Docker Compose und Nginx können wir eine hochverfügbare Bereitstellung von PHP-Anwendungen erreichen und sicherstellen, dass die Anwendung verfügbar bleibt, wenn Fehler auftreten.
Docker ist eine beliebte Containerisierungsplattform, die eine Anwendung und ihre Abhängigkeiten in einen eigenständigen Container packt. Docker Compose bietet eine einfache Möglichkeit, mehrere Containeranwendungen zu definieren und auszuführen.
Nginx ist ein Hochleistungs-Webserver und ein Reverse-Proxy-Server. Es kann eingehenden Datenverkehr zum Lastausgleich auf mehrere Backend-Server verteilen.
Hier ist ein Beispiel für die Implementierung einer hochverfügbaren Bereitstellung einer PHP-Anwendung mit Docker Compose und Nginx:
Zuerst müssen wir eine docker-compose.yml-Datei erstellen, um unsere Anwendung und den Nginx-Container zu definieren. In dieser Datei können wir mehrere Dienste definieren, wobei jeder Dienst einem Container entspricht.
version: '3' services: app1: build: context: . dockerfile: Dockerfile restart: always app2: build: context: . dockerfile: Dockerfile restart: always nginx: image: nginx ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf restart: always
In diesem Beispiel haben wir gleichzeitig zwei Anwendungscontainer (app1 und app2) und einen Nginx-Container (nginx) erstellt. app1 und app2 können dieselbe Anwendung oder verschiedene Anwendungen sein, um Redundanz und Hochverfügbarkeit zu gewährleisten.
Als nächstes müssen wir eine nginx.conf-Konfigurationsdatei erstellen und sie im Nginx-Container bereitstellen. Diese Konfigurationsdatei verwendet Nginx als Reverse-Proxy-Server, um den eingehenden Datenverkehr zwischen den beiden Anwendungscontainern zu verteilen.
http { upstream backend { server app1:8080; server app2:8080; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
In diesem Beispiel konfigurieren wir die Adressen und Ports von zwei Anwendungscontainern als Server im Upstream-Block von Nginx. Dann erfolgt im Hauptserverblock der Proxy-Verkehr zum Backend.
Schließlich müssen wir eine Docker-Datei schreiben, um unseren Anwendungscontainer zu erstellen. Diese Docker-Datei kann an Ihre spezifische Anwendung angepasst werden.
FROM php:7.4.15-fpm WORKDIR /var/www/html COPY . . RUN chmod -R 755 storage CMD ["php-fpm"]
In diesem Beispiel haben wir das offizielle PHP-Image verwendet und das Arbeitsverzeichnis auf /var/www/html festgelegt. Anschließend kopieren wir den Code und die Dateien der Anwendung in den Container und legen die entsprechenden Berechtigungen fest. Abschließend starten wir den PHP-FPM-Server mit dem Befehl php-fpm.
Nach Abschluss der oben genannten Schritte können wir den folgenden Befehl verwenden, um unsere hochverfügbare PHP-Anwendung zu starten:
docker-compose up -d
Dieser Befehl startet alle Container und stellt sie in den Hintergrund.
Durch die oben genannten Schritte haben wir die hochverfügbare Bereitstellung von PHP-Anwendungen mithilfe von Docker Compose und Nginx erfolgreich implementiert. Jetzt wird unsere Anwendung in mehreren Containern ausgeführt und der Lastausgleich erfolgt über Nginx.
Das Obige ist nur ein einfaches Beispiel, Sie können es an Ihre spezifischen Bedürfnisse anpassen. Durch die Verwendung von Docker Compose und Nginx können Sie problemlos eine hochverfügbare Bereitstellung von PHP-Anwendungen erreichen und sicherstellen, dass Ihre Anwendung verfügbar bleibt, wenn Fehler auftreten.
Das obige ist der detaillierte Inhalt vonHochverfügbare Bereitstellung von PHP-Anwendungen mit Docker Compose und Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!