Heim >Backend-Entwicklung >PHP-Tutorial >Erstellen Sie einen hochverfügbaren PHP-Anwendungscluster mit Docker Compose, Nginx und MariaDB
Erstellen Sie einen hochverfügbaren PHP-Anwendungscluster mit Docker Compose, Nginx und MariaDB.
Einführung:
Mit der Popularität des Internets sind die Entwicklung und Bereitstellung von Webanwendungen komplexer geworden. Um die Verfügbarkeit und Skalierbarkeit von Webanwendungen zu verbessern, haben viele Entwickler damit begonnen, Containerisierungstechnologie zum Aufbau hochverfügbarer Anwendungscluster zu nutzen. In diesem Artikel wird erläutert, wie Sie mit Docker Compose, Nginx und MariaDB einen hochverfügbaren PHP-Anwendungscluster erstellen, und es werden konkrete Codebeispiele gegeben.
1. Installieren Sie Docker und Docker Compose
Bevor wir beginnen, müssen wir Docker und Docker Compose installieren. Docker ist eine Containerisierungstechnologie, mit der Container erstellt und verwaltet werden können, und Docker Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern.
Zuerst müssen wir Docker installieren. Sie können das Installationspaket für Ihr Betriebssystem auf der offiziellen Docker-Website finden und es gemäß den offiziellen Anweisungen installieren.
Nachdem die Installation abgeschlossen ist, können Sie ein Terminal öffnen und den folgenden Befehl ausführen, um zu überprüfen, ob Docker ordnungsgemäß installiert ist:
docker --version
Als nächstes müssen wir Docker Compose installieren. Sie können die neueste Version der Binärdateien aus dem Docker Compose GitHub-Repository herunterladen und in Ihrem Systemverzeichnis ablegen.
Nach Abschluss der Installation können Sie den folgenden Befehl ausführen, um zu überprüfen, ob Docker Compose normal installiert wird:
docker-compose --version
Wenn die oben genannten Befehle normal ausgeführt werden, wurden Docker und Docker Compose erfolgreich installiert.
2. Erstellen Sie eine Docker Compose-Datei
Als nächstes müssen wir eine Datei namens docker-compose.yml erstellen, um unseren PHP-Anwendungscluster zu definieren. Hier ist ein einfaches Beispiel:
version: '3' services: web: image: nginx:latest ports: - 80:80 volumes: - ./src:/var/www/html - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:7.4-fpm volumes: - ./src:/var/www/html db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret volumes: - ./data:/var/lib/mysql
Im obigen Beispiel haben wir drei Dienste definiert: Web, PHP und DB. Der Webdienst verwendet Nginx als Reverse-Proxy-Server, um den Datenverkehr an die PHP-Anwendung weiterzuleiten, die im PHP-Dienst ausgeführt wird. Der PHP-Dienst verwendet PHP-FPM als PHP-Interpreter und mountet den Anwendungscode im Verzeichnis /var/www/html im Container. Der Datenbankdienst verwendet MariaDB als Datenbankserver und stellt das Datenspeicherverzeichnis bereit.
3. Nginx-Konfigurationsdatei erstellen
Wir müssen eine Datei mit dem Namen nginx.conf erstellen, um den Nginx-Server zu konfigurieren. Hier ist ein einfaches Beispiel:
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://php; proxy_set_header Host $host; } } }
Im obigen Beispiel haben wir einen einfachen Nginx-Server definiert, der Port 80 überwacht und den Datenverkehr per Proxy an den PHP-Dienst weiterleitet.
4. Schreiben Sie eine PHP-Anwendung
Wir müssen eine einfache PHP-Anwendung schreiben, um zu testen, ob unser Cluster ordnungsgemäß funktioniert. Hier ist ein einfaches Beispiel:
<?php $servername = "db"; $username = "root"; $password = "secret"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully to MariaDB server"; $conn->close(); ?>
Im obigen Beispiel haben wir eine Datenbank namens mydb erstellt und uns mit dem Root-Benutzer und dem geheimen Passwort mit dem MariaDB-Server verbunden. Bei erfolgreicher Verbindung wird „Erfolgreich mit dem MariaDB-Server verbunden“ ausgegeben.
5. Starten Sie den Anwendungscluster
Navigieren Sie zu dem Verzeichnis, in dem sich die Datei docker-compose.yml im Terminal befindet, und führen Sie den folgenden Befehl aus, um den Anwendungscluster zu starten:
docker-compose up -d
Dieser Befehl lädt die erforderliche Datei herunter und startet sie Image erstellen und den Container erstellen und ausführen.
6. Testen Sie den Anwendungscluster
Besuchen Sie http://localhost in Ihrem Browser. Sie sollten die Ausgabe „Erfolgreich mit dem MariaDB-Server verbunden“ sehen können, die anzeigt, dass Ihre PHP-Anwendung erfolgreich eine Verbindung zur MariaDB-Datenbank hergestellt hat .
7. Erweitern und verwalten Sie Anwendungscluster
Durch Ändern der Datei docker-compose.yml und erneutes Ausführen des Befehls docker-compose up -d können Sie Ihren Anwendungscluster einfach erweitern und verwalten. Sie können die Anzahl der Instanzen von Web-, PHP- und Datenbankdiensten erhöhen oder verringern sowie deren Konfiguration entsprechend Ihren Anforderungen ändern.
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit Docker Compose, Nginx und MariaDB einen hochverfügbaren PHP-Anwendungscluster erstellen. Wir haben über Docker Compose eine Multi-Container-Anwendung bestehend aus Nginx, PHP und MariaDB definiert und konkrete Codebeispiele gegeben. Mit diesem Cluster können wir unsere Anwendung einfach skalieren und verwalten und ihre Verfügbarkeit und Skalierbarkeit verbessern. Ich hoffe, dieser Artikel kann Ihnen helfen zu verstehen, wie Sie einen hochverfügbaren PHP-Anwendungscluster erstellen.
Das obige ist der detaillierte Inhalt vonErstellen Sie einen hochverfügbaren PHP-Anwendungscluster mit Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!