Heim  >  Artikel  >  Backend-Entwicklung  >  Erstellen Sie eine belastbare PHP-Anwendungsarchitektur mit Docker Compose, Nginx und MariaDB

Erstellen Sie eine belastbare PHP-Anwendungsarchitektur mit Docker Compose, Nginx und MariaDB

WBOY
WBOYOriginal
2023-10-12 10:31:56482Durchsuche

使用Docker Compose、Nginx和MariaDB构建弹性的PHP应用程序架构

Erstellen Sie eine belastbare PHP-Anwendungsarchitektur mit Docker Compose, Nginx und MariaDB.

Mit der Entwicklung von Cloud Computing und Containerisierungstechnologie ist der Aufbau einer belastbaren Anwendungsarchitektur immer wichtiger geworden. In diesem Artikel stellen wir vor, wie Sie Docker Compose, Nginx und MariaDB verwenden, um eine belastbare PHP-Anwendungsarchitektur aufzubauen, und stellen spezifische Codebeispiele bereit.

  1. Docker und Docker Compose installieren
    Zuerst müssen wir Docker und Docker Compose auf dem lokalen Computer installieren. Docker ist eine leichte Containerisierungsplattform, die uns beim Erstellen und Verwalten von Containern unterstützt, und Docker Compose ist ein Tool, mit dem wir mehrere Docker-Container über eine einzige Konfigurationsdatei definieren und ausführen können. Informationen zur Installation und Konfiguration entsprechend Ihrem Betriebssystemtyp finden Sie in der offiziellen Dokumentation.
  2. Docker Compose-Datei erstellen
    Als nächstes müssen wir eine Docker Compose-Konfigurationsdatei erstellen, um unsere Anwendungsarchitektur zu definieren. Erstellen Sie eine Datei mit dem Namen docker-compose.yml im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu:
version: '3'
services:
  web:
    image: nginx:latest
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
  db:
    image: mariadb:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=app
      - MYSQL_USER=appuser
      - MYSQL_PASSWORD=apppassword

Die obige Konfigurationsdatei definiert drei Dienste: Web, PHP und DB. Der Webdienst verwendet das neueste Nginx-Image, um die Ports 80 und 443 dem Host zuzuordnen. Der Webdienst passt auch die Nginx-Konfiguration an, indem er die lokale Datei nginx.conf in den Container einbindet. Der PHP-Dienst verwendet das neueste PHP-Image und gibt Code frei, indem er das lokale Codeverzeichnis in den Container einbindet. Der DB-Dienst verwendet das neueste MariaDB-Image und die Passwörter für den Root-Benutzer und die App-Datenbank sind festgelegt.

  1. Nginx-Konfigurationsdatei erstellen
    Damit Nginx ordnungsgemäß funktioniert, müssen wir eine Nginx-Konfigurationsdatei erstellen und diese im Webcontainer bereitstellen. Erstellen Sie eine Datei mit dem Namen nginx.conf im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu:
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
        listen 80;

        location / {
            proxy_pass http://php:80;
            proxy_set_header Host $host;
        }
    }
}

Die obige Konfigurationsdatei gibt die Anzahl der Nginx-Worker-Prozesse sowie die Ports und Proxy-Regeln an, die Nginx überwacht. In diesem Beispiel leitet Nginx alle Anfragen per Proxy an Port 80 im PHP-Container weiter.

  1. Eine PHP-Anwendung schreiben
    Schreiben Sie den Code für die PHP-Anwendung in das Codeverzeichnis. Wir werden hier nicht den spezifischen PHP-Code zeigen. Sie können PHP-Anwendungen nach Ihren eigenen Bedürfnissen schreiben. Wichtig ist, dass Sie diese Codes im Codeverzeichnis ablegen, um sie mit dem PHP-Container zu teilen.
  2. Starten Sie den Container
    Öffnen Sie das Terminal im Stammverzeichnis des Projekts und führen Sie den folgenden Befehl aus, um den Container zu starten:
docker-compose up -d

Dieser Befehl startet und verwaltet alle Container gemäß der Konfiguration in der Datei docker-compose.yml . Durch das Hinzufügen des Parameters -d wird der Container im Hintergrund ausgeführt.

  1. ZUGRIFFSANWENDUNG
    Sie können jetzt über Ihren Browser auf Ihre PHP-Anwendung zugreifen, indem Sie http://localhost besuchen. Nginx leitet die Anfrage an die PHP-Anwendung weiter, die im PHP-Container ausgeführt wird, und gibt die Ergebnisse an den Browser zurück.
  2. Container skalieren
    Wenn Ihre Anwendung skaliert werden muss, ist dies ganz einfach in Docker Compose möglich. Sie können mehr Anfragen bearbeiten, indem Sie die Anzahl der PHP-Container erhöhen. Ändern Sie einfach den PHP-Dienst in der Datei docker-compose.yml und erhöhen Sie die Anzahl der Replikate um eins, wie unten gezeigt:
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
    scale: 3

Die obige Konfiguration erstellt 3 PHP-Container mit jeweils demselben Code und derselben Konfiguration. Wenn mehr Anfragen eingehen, verteilt Docker Compose auf diese Weise die Anfragen automatisch auf verschiedene PHP-Container und erreicht so eine Skalierung.

Zusammenfassung
In diesem Artikel wird vorgestellt, wie Sie mit Docker Compose, Nginx und MariaDB eine belastbare PHP-Anwendungsarchitektur erstellen. Durch die Verwendung von Docker Compose können wir problemlos mehrere Docker-Container definieren und ausführen, Anforderungs-Proxying und Lastausgleich über Nginx implementieren und Anwendungsdaten über MariaDB speichern. Wir haben auch gezeigt, wie man die Anwendung skalieren kann, indem man die Anzahl der PHP-Container erhöht. Ich hoffe, dieser Artikel war hilfreich und wenn Sie Fragen haben, können Sie diese gerne stellen.

Das obige ist der detaillierte Inhalt vonErstellen Sie eine belastbare PHP-Anwendungsarchitektur mit Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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