Erstellen Sie einen hochverfügbaren PHP-Anwendungscluster mit Docker Compose, Nginx und MariaDB

PHPz
Freigeben: 2023-10-12 08:40:01
Original
1018 Leute haben es durchsucht

使用Docker Compose、Nginx和MariaDB构建高可用性的PHP应用程序集群

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
        }
    }
}
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage