In der modernen Entwicklung der Webanwendungen ist eine hohe Verfügbarkeit eines der wichtigsten Anforderungen. Mit Docker Compose und Nginx können wir problemlos eine hohe Verfügbarkeitsbereitstellung von PHP -Anwendungen erreichen, um sicherzustellen, dass Anwendungen noch stabil und bei Ausfällen verfügbar sind.
Als führende Containerisierungsplattform kann Docker Anwendungen und ihre Abhängigkeiten in unabhängigen Containern zusammenfassen. Docker Compose vereinfacht den Definitions- und Managementprozess von Multi-Container-Anwendungen.
Nginx ist nicht nur ein Hochleistungs-Webserver, sondern auch ein weit verbreiteter Reverse-Proxy-Server. Es kann angeforderten Datenverkehr auf mehrere Backend -Server verteilen, den Lastausgleich realisieren und die Verfügbarkeit und Leistung des Gesamtsystems verbessern.
Zunächst müssen Sie eine Docker-compose.yml -Datei erstellen, um mehrere Anwendungsinstanzen und Nginx-Container zu definieren. Die Beispielkonfiguration lautet wie folgt:
Version: '3' Dienstleistungen: App1: bauen: Kontext :. Dockerfile: Dockerfile Neustart: Immer App2: bauen: Kontext :. Dockerfile: Dockerfile Neustart: Immer nginx: Bild: Nginx Ports: - "80:80" Bände: - ./nginx.conf:/etc/nginx/nginx.conf Neustart: Immer
In dieser Konfiguration befinden sich App1 und App2 zwei PHP -Anwendungscontainer, die dieselben oder unterschiedlichen Versionen von Anwendungen ausführen können, um Redundanz zu erreichen. Der Nginx -Container ist für den Empfang von Verkehr und Lastausgleich verantwortlich.
Erstellen und montieren Sie eine nginx.conf -Konfigurationsdatei in den Nginx -Container. Das Konfigurationsbeispiel lautet wie folgt:
http { Upstream Backend { Server App1: 8080; Server App2: 8080; } Server { Hören Sie 80; Standort / { proxy_pass http: // Backend; proxy_set_header host $ host; proxy_set_header x-real-ip $ remote_addr; } } }
Diese Konfiguration definiert einen vorgelagerten Backend , der zwei Anwendungsserveradressen enthält. Nachdem Nginx die Anforderung erhalten hat, zugewiesen sie diesen beiden PHP -Anwendungsbehälter den Verkehr, um einen Lastausgleich zu erreichen.
Schreiben Sie eine Dockerfile nach den tatsächlichen Bedürfnissen. Der Beispielinhalt lautet wie folgt:
Aus Php: 7.4.15-FPM WorkDir/var/www/html Kopie. . Führen Sie den CHMOD -R 755 -Speicher aus CMD ["PHP-FPM"]
Diese DockerFile basiert auf dem offiziellen PHP-Image, legt das Arbeitsverzeichnis fest, kopieren Sie den Anwendungscode und konfiguriert Verzeichnisberechtigungen und startet schließlich den PHP-FPM-Dienst.
Starten Sie nach Abschluss der Konfiguration alle Container mit dem folgenden Befehl:
Docker -Compose Up -d
Dieser Befehl startet mehrere definierte Container im Hintergrund, sodass PHP-Anwendungen über NGINX geladen werden können, um eine hohe Verfügbarkeit zu erreichen.
Über Docker Compose und Nginx haben wir erfolgreich eine gut verfügbare Bereitstellungsumgebung für PHP -Anwendungen erstellt. Multicontainer-Architektur und Lastausgleichsmechanismus stellen sicher, dass Anwendungen weiterhin in einem einzigen Ausfallpunkt verfügbar sind und das Ausgleichsmaßstab.
Dieser Artikel enthält grundlegende Beispiele, bei denen Sie Konfigurationen nach tatsächlichen Bedürfnissen zur Implementierung einer komplexeren Produktionsarchitektur für die Produktion weiter anpassen können.