Maison  >  Article  >  développement back-end  >  Créez des clusters d'applications PHP élastiques et évolutifs à l'aide de Docker Compose, Nginx et MariaDB

Créez des clusters d'applications PHP élastiques et évolutifs à l'aide de Docker Compose, Nginx et MariaDB

WBOY
WBOYoriginal
2023-10-12 13:03:111125parcourir

使用Docker Compose、Nginx和MariaDB构建弹性可扩展的PHP应用程序集群

Créez un cluster d'applications PHP élastique et évolutif à l'aide de Docker Compose, Nginx et MariaDB

Introduction :
Avec le développement rapide de la technologie Internet, de plus en plus d'applications doivent disposer de fonctionnalités élastiques et évolutives pour répondre aux besoins croissants des utilisateurs. . Dans une architecture de serveur traditionnelle, parvenir à une expansion élastique nécessite souvent une configuration et un ajustement complexes, ce qui rend difficile la réponse à des besoins en évolution rapide. Grâce à Docker Compose, Nginx et MariaDB, nous pouvons facilement créer un cluster d'applications PHP élastique et évolutif pour répondre aux besoins d'une concurrence élevée et d'un trafic important.

1. Introduction à Docker Compose
Docker Compose est un outil officiellement fourni par Docker pour définir et exécuter plusieurs conteneurs Docker. Grâce à un fichier de configuration, nous pouvons définir les dépendances et les informations de configuration de plusieurs conteneurs, et utiliser les commandes Docker Compose pour déployer et gérer rapidement l'ensemble du cluster.

2. Introduction à Nginx
Nginx est un serveur Web et un serveur proxy inverse hautes performances capables de gérer un grand nombre de connexions simultanées et de requêtes à charge élevée. Nginx se caractérise par sa légèreté, sa bonne stabilité et sa faible consommation de ressources. Il est très approprié comme entrée frontale pour les clusters d'applications PHP.

3. Introduction à MariaDB
MariaDB est un système de gestion de bases de données relationnelles largement utilisé dans les applications Web. Il s'agit d'un fork de MySQL qui conserve toutes les fonctionnalités de MySQL et ajoute de nouvelles fonctionnalités et optimisations de performances. MariaDB se caractérise par une vitesse rapide, une bonne stabilité et une forte évolutivité, ce qui la rend très appropriée comme base de données principale pour les clusters d'applications PHP.

4. Créez un fichier de configuration Docker Compose
Tout d'abord, nous devons créer un fichier de configuration Docker Compose nommé docker-compose.yml. Dans ce fichier, nous devons définir un ensemble de services et spécifier les dépendances, les images de conteneurs et les mappages de ports entre eux. Voici le contenu d'un exemple de fichier de configuration :

version: "3"

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php

  php:
    image: php:latest
    volumes:
      - ./php:/var/www/html

  mariadb:
    image: mariadb:latest
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=secret

Dans le fichier de configuration ci-dessus, nous définissons trois services : nginx, php et mariadb. Parmi eux, le service nginx utilise l'image Nginx officiellement fournie et mappe le port 80 de l'hôte au port 80 du conteneur ; le service php utilise l'image PHP officiellement fournie et mappe le répertoire ./php de l'hôte au /var/ www/html du conteneur ; ; le service mariadb utilise l'image MariaDB officiellement fournie et mappe le port 3306 de l'hôte au port 3306 du conteneur. De plus, nous spécifions également la dépendance entre les conteneurs via le mot-clé depend_on pour garantir que le conteneur php démarre avant le démarrage du conteneur nginx.

5. Écrire le fichier de configuration Nginx
Ensuite, nous devons écrire un fichier de configuration Nginx pour spécifier le comportement et les règles du serveur Web. Dans ce fichier, nous pouvons définir l'hôte virtuel, le proxy inverse, l'équilibrage de charge et d'autres fonctions. Voici le contenu d'un exemple de fichier de configuration :

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://php;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Dans le fichier de configuration ci-dessus, nous définissons un hôte virtuel qui écoute sur le port 80 et transmet toutes les requêtes au service php. Grâce à la directive proxy_pass, nous transmettons la requête à un service nommé php, qui est le nom du service défini par Docker Compose.

6. Créez et démarrez le cluster d'applications
Après avoir terminé la configuration ci-dessus, nous pouvons utiliser la commande Docker Compose pour créer et démarrer l'ensemble du cluster d'applications. Exécutez la commande suivante dans le terminal :

$ docker-compose up -d

Cette commande créera et démarrera tous les conteneurs définis en fonction des informations de configuration dans le fichier docker-compose.yml. Le paramètre -d signifie s'exécuter en mode arrière-plan, c'est-à-dire que le journal ne sera pas affiché en temps réel sur le terminal. Une fois l'exécution terminée, nous pouvons accéder à l'application en accédant à http://localhost.

7. Développez le cluster d'applications
Si vous devez étendre le cluster d'applications pour répondre à des exigences de concurrence plus élevées, il suffit d'ajouter un nouveau service php au fichier de configuration Docker Compose. Par exemple, nous pouvons ajouter le contenu suivant au fichier docker-compose.yml :

  php2:
    image: php:latest
    volumes:
      - ./php:/var/www/html

Ensuite, utilisez la commande docker-compose up -d pour reconstruire et démarrer l'intégralité du cluster. De cette façon, nous avons réussi à étendre le cluster d’applications et à répondre aux exigences d’expansion élastique.

Résumé :
En utilisant Docker Compose, Nginx et MariaDB, nous pouvons facilement créer un cluster d'applications PHP élastique et évolutif. Docker Compose offre la possibilité de déployer et de gérer rapidement des clusters, Nginx en tant que portail frontal peut gérer une concurrence élevée et des demandes de trafic important, et MariaDB en tant que base de données principale offre stabilité et évolutivité. Dans les applications pratiques, nous pouvons configurer et ajuster de manière flexible en fonction des besoins spécifiques pour répondre aux besoins changeants de l'entreprise.

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