Maison  >  Article  >  développement back-end  >  Mise à l'échelle horizontale des applications PHP avec Docker Compose, Nginx et MariaDB

Mise à l'échelle horizontale des applications PHP avec Docker Compose, Nginx et MariaDB

WBOY
WBOYoriginal
2023-10-12 11:22:561411parcourir

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的水平扩展

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn