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:
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; } }
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(); ?>
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
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!