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

PHPz
PHPzoriginal
2023-10-12 08:23:101043parcourir

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

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!

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