Horizontale Erweiterung von PHP-Anwendungen durch Docker Compose, Nginx und MariaDB
Mit der Entwicklung des Internets und der zunehmenden Komplexität von Anwendungen ist die effiziente Erweiterung der Leistung von Anwendungen zu einem wichtigen Thema geworden. Bei der horizontalen Skalierung handelt es sich um eine Lösung, die die Verarbeitungsleistung einer Anwendung durch das Hinzufügen von Serverinstanzen erhöht. In diesem Artikel werde ich vorstellen, wie man mit Docker Compose, Nginx und MariaDB eine horizontale Skalierung von PHP-Anwendungen erreicht, und spezifische Codebeispiele bereitstellen.
Umgebungsvorbereitung:
Bevor wir beginnen, müssen wir einige Umgebungen vorbereiten, einschließlich Maschinen, auf denen Docker und Docker Compose installiert sind. Wenn Sie diese Tools noch nicht installiert haben, finden Sie die entsprechende Installationsanleitung auf der offiziellen Website.
Schritt 1: Docker Compose-Datei erstellen
Erstellen Sie zunächst eine Datei namens docker-compose.yml und definieren Sie darin unseren Dienst. Unten sehen Sie den Inhalt einer Beispiel-Kompositionsdatei:
version: '3.7' services: web: build: ./web ports: - 80:80 networks: - app-net depends_on: - db db: image: mariadb environment: - MYSQL_ROOT_PASSWORD=your_password networks: - app-net networks: app-net:
Im obigen Beispiel haben wir zwei Dienste definiert: web und db. Der Webdienst wird zum Ausführen von Nginx- und PHP-Anwendungen verwendet, und der Datenbankdienst wird zum Ausführen der MariaDB-Datenbank verwendet.
Schritt 2: Dockerfile für Nginx- und PHP-Anwendungen erstellen
Im vorherigen Schritt haben wir den Build-Pfad des Webdienstes als ./web angegeben. Jetzt müssen wir in diesem Verzeichnis eine Docker-Datei erstellen, um Images von Nginx- und PHP-Anwendungen zu erstellen. Hier ist ein einfaches Dockerfile-Beispiel:
FROM nginx:latest # 安装PHP和一些扩展 RUN apt-get update && apt-get install -y php7.4-cli php7.4-fpm php7.4-mysql # 复制PHP应用程序到容器中 COPY app /var/www/html # 配置Nginx COPY nginx.conf /etc/nginx/nginx.conf # 启动Nginx和PHP-FPM CMD service php7.4-fpm start && nginx -g "daemon off;"
Im obigen Beispiel verwenden wir nginx:latest als Basis-Image und installieren darin PHP und einige gängige Erweiterungen. Anschließend haben wir die PHP-Anwendung in den Container kopiert und eine angepasste nginx.conf-Datei kopiert.
Schritt 3: Nginx-Konfigurationsdatei erstellen
In der Docker-Datei im vorherigen Schritt haben wir eine angepasste nginx.conf-Datei verwendet. Jetzt müssen wir diese Datei im Verzeichnis ./web erstellen und die Nginx-Konfiguration definieren. Unten ist der Inhalt einer Beispieldatei nginx.conf:
worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location ~ .php$ { fastcgi_pass web:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { try_files $uri $uri/ /index.php?$query_string; } } }
Im obigen Beispiel definieren wir einen virtuellen Host für Nginx und leiten die Anfrage an den PHP-FPM-Container namens web weiter.
Schritt 4: Erstellen Sie eine PHP-Anwendung
In der Konfigurationsdatei nginx.conf im vorherigen Schritt haben wir das Stammverzeichnis der PHP-Anwendung als /var/www/html angegeben. Jetzt müssen wir einen Ordner namens app im Verzeichnis ./web erstellen und den Code der PHP-Anwendung darin ablegen.
Schritt 5: Container-Cluster starten
Nach Abschluss der oben genannten Vorbereitungen können wir nun den Container-Cluster starten. Geben Sie im Terminal das Verzeichnis ein, in dem sich docker-compose.yml befindet, und führen Sie den folgenden Befehl aus:
docker-compose up -d
Dieser Befehl startet die Web- und Datenbankdienste und verbindet sie mit dem Netzwerk namens app-net. Der Webdienst bindet Port 80 des Hostcomputers, um HTTP-Anfragen von außen zu empfangen.
Zu diesem Zeitpunkt haben wir Docker Compose, Nginx und MariaDB erfolgreich eingesetzt, um eine horizontale Skalierung von PHP-Anwendungen zu erreichen. Jetzt können wir die Anwendung mit dem folgenden Befehl skalieren:
docker-compose up --scale web=n
wobei n die Anzahl der zu skalierenden Webdienstinstanzen ist.
Zusammenfassung:
Dieser Artikel stellt die Verwendung von Docker Compose, Nginx und MariaDB vor, um eine horizontale Erweiterung von PHP-Anwendungen zu erreichen, und bietet spezifische Codebeispiele. Durch den Einsatz dieser Tools können wir die Leistung unserer Anwendungen schnell und einfach skalieren, um den wachsenden Benutzeranforderungen gerecht zu werden. Ich hoffe, dass dieser Artikel für alle in der Praxis hilfreich sein kann.
Das obige ist der detaillierte Inhalt vonHorizontale Skalierung von PHP-Anwendungen mit Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!