Maison >développement back-end >tutoriel php >Créez un cluster d'applications PHP hautement disponible à l'aide de Docker Compose, Nginx et MariaDB
Créez un cluster d'applications PHP hautement disponible à l'aide de Docker Compose, Nginx et MariaDB
Introduction :
Avec la popularité d'Internet, le développement et le déploiement d'applications Web sont devenus plus complexes. Afin d'améliorer la disponibilité et l'évolutivité des applications Web, de nombreux développeurs ont commencé à utiliser la technologie de conteneurisation pour créer des clusters d'applications à haute disponibilité. Cet article expliquera comment utiliser Docker Compose, Nginx et MariaDB pour créer un cluster d'applications PHP hautement disponible et donnera des exemples de code spécifiques.
1. Installez Docker et Docker Compose
Avant de commencer, nous devons installer Docker et Docker Compose. Docker est une technologie de conteneurisation qui peut être utilisée pour créer et gérer des conteneurs, et Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs.
Tout d’abord, nous devons installer Docker. Vous pouvez trouver le package d'installation de votre système d'exploitation sur le site officiel de Docker et l'installer conformément aux instructions officielles.
Une fois l'installation terminée, vous pouvez ouvrir un terminal et exécuter la commande suivante pour vérifier que Docker est correctement installé :
docker --version
Ensuite, nous devons installer Docker Compose. Vous pouvez télécharger la dernière version des binaires à partir du référentiel Docker Compose GitHub et les placer dans votre répertoire système.
Une fois l'installation terminée, vous pouvez exécuter la commande suivante pour vérifier si Docker Compose est installé normalement :
docker-compose --version
Si les commandes ci-dessus s'exécutent normalement, Docker et Docker Compose ont été installés avec succès.
2. Créez un fichier Docker Compose
Ensuite, nous devons créer un fichier nommé docker-compose.yml pour définir notre cluster d'application PHP. Voici un exemple basique :
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
Dans l'exemple ci-dessus, nous avons défini trois services : web, php et db. Le service Web utilise Nginx comme serveur proxy inverse pour transférer le trafic vers l'application PHP exécutée dans le service php. Le service php utilise PHP-FPM comme interpréteur PHP et monte le code de l'application dans le répertoire /var/www/html du conteneur. Le service db utilise MariaDB comme serveur de base de données et monte le répertoire de stockage de données.
3. Créer un fichier de configuration Nginx
Nous devons créer un fichier nommé nginx.conf pour configurer le serveur Nginx. Voici un exemple de base :
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://php; proxy_set_header Host $host; } } }
Dans l'exemple ci-dessus, nous avons défini un simple serveur Nginx, écoutant sur le port 80 et transmettant le trafic au service php.
4. Écrire une application PHP
Nous devons écrire une application PHP simple pour tester si notre cluster fonctionne correctement. Voici un exemple de base :
<?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(); ?>
Dans l'exemple ci-dessus, nous avons créé une base de données nommée mydb et connectée au serveur MariaDB en utilisant l'utilisateur root et le mot de passe secret. Si la connexion réussit, « Connecté avec succès au serveur MariaDB » sera affiché.
5. Démarrez le cluster d'applications
Accédez au répertoire où se trouve le fichier docker-compose.yml dans le terminal et exécutez la commande suivante pour démarrer le cluster d'applications :
docker-compose up -d
Cette commande téléchargera et démarrera le cluster d'applications requis. image, puis créez et exécutez le conteneur.
6. Testez le cluster d'applications
Visitez http://localhost dans votre navigateur, vous devriez pouvoir voir le résultat "Connecté avec succès au serveur MariaDB", qui indique que votre application PHP s'est connectée avec succès à la base de données MariaDB .
7. Développez et gérez les clusters d'applications
En modifiant le fichier docker-compose.yml et en exécutant à nouveau la commande docker-compose up -d, vous pouvez facilement développer et gérer votre cluster d'applications. Vous pouvez augmenter ou diminuer le nombre d'instances des services web, php et db ainsi que modifier leur configuration selon vos besoins.
Résumé :
Cet article explique comment utiliser Docker Compose, Nginx et MariaDB pour créer un cluster d'applications PHP hautement disponible. Nous avons défini une application multi-conteneurs composée de Nginx, PHP et MariaDB via Docker Compose et donné des exemples de code spécifiques. Avec ce cluster, nous pouvons facilement faire évoluer et gérer notre application et améliorer sa disponibilité et son évolutivité. J'espère que cet article pourra vous aider à comprendre comment créer un cluster d'applications PHP hautement disponible.
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!