Extension horizontale des applications PHP via Docker Compose, Nginx et MariaDB
Avec le développement d'Internet et l'augmentation de la complexité des applications, comment étendre efficacement les performances des applications est devenu un problème important. La mise à l'échelle horizontale est une solution qui augmente la puissance de traitement d'une application en ajoutant des instances de serveur. Dans cet article, je présenterai comment utiliser Docker Compose, Nginx et MariaDB pour réaliser une mise à l'échelle horizontale des applications PHP et fournirai des exemples de code spécifiques.
Préparation de l'environnement :
Avant de commencer, nous devons préparer certains environnements, notamment les machines sur lesquelles Docker et Docker Compose sont installés. Si vous n'avez pas encore installé ces outils, vous pouvez trouver le guide d'installation correspondant sur le site officiel.
Étape 1 : Créer un fichier Docker Compose
Tout d'abord, créez un fichier appelé docker-compose.yml et définissez-y notre service. Vous trouverez ci-dessous le contenu d'un exemple de fichier de composition :
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:
Dans l'exemple ci-dessus, nous avons défini deux services : web et db. Le service Web est utilisé pour exécuter des applications Nginx et PHP, et le service db est utilisé pour exécuter la base de données MariaDB.
Étape 2 : Créer un Dockerfile pour les applications Nginx et PHP
Dans l'étape précédente, nous avons spécifié le chemin de construction du service Web comme ./web. Maintenant, nous devons créer un Dockerfile dans ce répertoire pour créer des images d'applications Nginx et PHP. Voici un exemple simple de Dockerfile :
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;"
Dans l'exemple ci-dessus, nous utilisons nginx:latest comme image de base et y installons PHP et quelques extensions courantes. Nous avons ensuite copié l'application PHP dans le conteneur et copié un fichier nginx.conf personnalisé.
Étape 3 : Créer un fichier de configuration Nginx
Dans le fichier Docker de l'étape précédente, nous avons utilisé un fichier nginx.conf personnalisé. Maintenant, nous devons créer ce fichier dans le répertoire ./web et définir la configuration Nginx. Vous trouverez ci-dessous le contenu d'un exemple de fichier 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; } } }
Dans l'exemple ci-dessus, nous définissons un hôte virtuel pour Nginx et transmettons la requête au conteneur PHP-FPM nommé web.
Étape 4 : Créer une application PHP
Dans le fichier de configuration nginx.conf à l'étape précédente, nous avons spécifié le répertoire racine de l'application PHP comme /var/www/html. Maintenant, nous devons créer un dossier nommé app sous le répertoire ./web et y mettre le code de l'application PHP.
Étape 5 : Démarrez le cluster de conteneurs
Après avoir terminé les préparatifs ci-dessus, nous pouvons maintenant démarrer le cluster de conteneurs. Dans le terminal, entrez le répertoire où se trouve docker-compose.yml et exécutez la commande suivante :
docker-compose up -d
Cette commande démarrera les services web et db et les connectera au réseau nommé app-net. Le service Web liera le port 80 de la machine hôte pour recevoir les requêtes HTTP de l'extérieur.
À ce stade, nous avons utilisé avec succès Docker Compose, Nginx et MariaDB pour réaliser une mise à l'échelle horizontale des applications PHP. Maintenant, nous pouvons faire évoluer l'application à l'aide de la commande suivante :
docker-compose up --scale web=n
où n est le nombre d'instances de service Web à mettre à l'échelle.
Résumé :
Cet article explique comment utiliser Docker Compose, Nginx et MariaDB pour réaliser une expansion horizontale des applications PHP et fournit des exemples de code spécifiques. En utilisant ces outils, nous pouvons faire évoluer rapidement et facilement les performances de nos applications pour répondre aux besoins croissants des utilisateurs. J'espère que cet article pourra être utile à tout le monde dans la pratique.
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!