Reprise après sinistre et récupération d'applications PHP avec Docker Compose, Nginx et MariaDB

WBOY
Libérer: 2023-10-12 10:44:02
original
1018 Les gens l'ont consulté

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的灾备和恢复

Récupération et récupération après sinistre pour les applications PHP avec Docker Compose, Nginx et MariaDB

La récupération et la récupération après sinistre sont un sujet important et très critique pour toute application. Dans les environnements de cloud computing modernes, la reprise après sinistre et la récupération des applications peuvent être facilement réalisées grâce à la technologie de conteneurisation. Cet article expliquera comment utiliser Docker Compose, Nginx et MariaDB pour implémenter la reprise après sinistre et la récupération d'applications PHP, et fournira des exemples de code spécifiques.

Tout d'abord, nous devons définir un fichier Docker Compose qui décrit les différents composants de notre application et les relations entre eux. Voici un exemple simple :

version: '3'
services:
  web:
    build: .
    ports:
      - 80:80
    depends_on:
      - db
    networks:
      - app-network
  db:
    image: mariadb:latest
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=secret
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - app-network
networks:
  app-network:
volumes:
  db-data:
Copier après la connexion

Le fichier Docker Compose ci-dessus définit deux services : web et db. Le service Web est notre application PHP et il fonctionnera via Nginx. Le service db est une base de données MariaDB utilisée pour stocker les données de l'application.

Ensuite, nous devons écrire un fichier de configuration Nginx pour transmettre les requêtes à notre application PHP. Voici un exemple de fichier de configuration :

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    location ~ .php$ {
        fastcgi_pass web:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
Copier après la connexion

Dans le fichier de configuration ci-dessus, nous utilisons la directive fastcgi_pass pour transmettre la requête au service Docker nommé web, le numéro de port étant 9000.

Enfin, nous devons écrire une application PHP et la conditionner dans une image conteneur avec le code ci-dessus. Vous trouverez ci-dessous un exemple d'application PHP simple :

<?php
$servername = "db";
$username = "root";
$password = "secret";
$dbname = "mydb";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 执行查询
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// 输出结果
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 关闭连接
$conn->close();
?>
Copier après la connexion

L'application PHP ci-dessus est un exemple simple de requête de base de données qui se connecte à une base de données MariaDB nommée db et exécute une requête. Les résultats de la requête seront affichés dans le navigateur.

Afin de parvenir à la préparation aux sinistres et à la récupération, nous pouvons utiliser les commandes Docker Compose pour démarrer et arrêter nos applications. Voici quelques exemples de commandes couramment utilisées :

# 启动应用程序
docker-compose up -d

# 停止应用程序
docker-compose down
Copier après la connexion

En utilisant ces commandes, nous pouvons facilement créer et détruire nos instances d'application pour atteindre nos objectifs de préparation aux sinistres et de récupération.

Résumé :

Avec Docker Compose, Nginx et MariaDB, nous pouvons facilement mettre en œuvre une reprise après sinistre et une récupération d'applications PHP. Grâce à la technologie de conteneurisation, nous pouvons rapidement déployer et détruire des instances d'application et utiliser Nginx comme proxy inverse pour équilibrer la charge du trafic. MariaDB fournit de puissantes fonctions de base de données pour stocker et gérer les données d'application. Les exemples de code fournis ci-dessus peuvent aider les lecteurs à comprendre comment implémenter ces fonctions et à personnaliser leurs propres applications en fonction de celles-ci.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!