La recette d'or de Docker Compose, Nginx et MariaDB : architecture d'application PHP hautement disponible
[Introduction]
À l'ère d'Internet d'aujourd'hui, la haute disponibilité est cruciale pour chaque site Web et chaque application. Pour atteindre cet objectif, nous devons construire une architecture stable, évolutive et performante. Cet article expliquera comment utiliser Docker Compose, Nginx et MariaDB pour créer une architecture d'application PHP hautement disponible et fournira des exemples de code spécifiques.
[Première partie : Présentation de l'architecture]
Notre objectif est de créer une architecture hautement disponible dans laquelle les applications PHP s'exécuteront dans plusieurs instances et seront distribuées via l'équilibrage de charge. De plus, nous utiliserons MariaDB comme couche de base de données et Nginx comme serveur proxy inverse.
[Partie 2 : Docker Compose]
Nous utiliserons Docker Compose pour définir et gérer l'ensemble de notre pile d'applications. Il nous permet de définir et de configurer tous les conteneurs à l'aide d'un simple fichier YAML. Voici un exemple de fichier Docker Compose contenant un conteneur d'application PHP, un conteneur Nginx et un conteneur MariaDB :
version: '3' services: app: build: context: . dockerfile: Dockerfile ports: - 8000:80 environment: - DB_HOST=mariadb nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro mariadb: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret
[Partie 3 : Configuration Nginx]
Nginx agit comme un serveur proxy inverse, qui peut être distribué à plusieurs instances d'application PHP. . Nous devons modifier le fichier de configuration de Nginx pour y parvenir. Voici un exemple simplifié de fichier de configuration Nginx :
worker_processes 1; events { worker_connections 1024; } http { upstream php { server app1:80; server app2:80; # 可以根据需要修改添加更多的PHP应用实例 } server { listen 80; location / { proxy_pass http://php; } } }
[Partie 4 : Application PHP]
Notre application PHP est un exemple simple qui utilise le framework Slim pour gérer les requêtes HTTP. Voici un exemple de fichier index.php :
<?php require __DIR__ . '/vendor/autoload.php'; $app = new SlimApp(); $app->get('/', function ($request, $response) { $response->getBody()->write("Hello, world!"); return $response; }); $app->run();
[Partie 5 : Démarrage et gestion]
Pour démarrer notre pile d'applications, exécutez simplement la commande suivante :
docker-compose up -d
Cela démarrera tous les conteneurs et les connectera ensemble. Si vous disposez de plusieurs instances de votre application PHP, Docker Compose créera un nouveau conteneur pour chaque instance.
Pour faire évoluer votre application, exécutez simplement la commande suivante :
docker-compose scale app=3
Cela lancera deux instances supplémentaires en plus de l'instance d'application existante.
[Conclusion]
En combinant Docker Compose, Nginx et MariaDB, nous pouvons construire une architecture d'application PHP hautement disponible, évolutive et performante. Cette recette en or améliore non seulement la fiabilité des applications, mais simplifie également le déploiement et la gestion. J'espère que les exemples de code spécifiques fournis dans cet article vous seront utiles. Que votre candidature prospère !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!