Maison développement back-end tutoriel php Implémentation d'une stratégie de sauvegarde et de récupération pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB

Implémentation d'une stratégie de sauvegarde et de récupération pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB

Oct 12, 2023 am 09:52 AM
docker backup restore

<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/169707557237628.jpg" class="lazy" alt="使用Docker Compose、Nginx和MariaDB实现PHP应用程序的备份和恢复策略"></p> <p>Utiliser Docker Compose, Nginx et MariaDB pour mettre en œuvre des stratégies de sauvegarde et de récupération pour les applications PHP</p> <p>Introduction : <br>Dans le développement de logiciels modernes, les stratégies de sauvegarde et de récupération sont un élément crucial. Lors de la conception d'une stratégie de sauvegarde et de récupération pour les applications PHP, nous pouvons utiliser une combinaison de Docker Compose, Nginx et MariaDB pour obtenir une solution fiable et flexible. Cet article fournira des étapes détaillées et des exemples de code pour aider les lecteurs à démarrer rapidement. </p> <p>1. Créez un fichier Docker Compose</p> <ol><li>Tout d'abord, nous devons créer un fichier nommé <code>docker-compose.yml</code> et y définir notre service. Voici la structure de base d'un exemple de fichier : <code>docker-compose.yml</code>的文件,并在其中定义我们的服务。以下是一个示例文件的基本结构:</li></ol><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>version: '3' services: app: build: context: ./app dockerfile: Dockerfile volumes: - ./app:/var/www/html depends_on: - db restart: always db: image: mariadb ports: - 3306:3306 restart: always web: image: nginx ports: - 80:80 volumes: - ./nginx:/etc/nginx/conf.d depends_on: - app restart: always</pre><div class="contentsignin">Copier après la connexion</div></div><ol start="2"><li>在上述示例中,我们定义了三个服务:<code>app</code>、<code>db</code>和<code>web</code>。其中,<code>app</code>服务是PHP应用程序的容器,<code>db</code>服务是MariaDB数据库的容器,<code>web</code>服务是Nginx服务器的容器。</li><li>我们还使用了<code>volumes</code>属性来实现数据卷的挂载。在示例中,我们将<code>./app</code>目录挂载到了<code>app</code>服务的<code>/var/www/html</code>目录,以便持久化存储应用程序的数据。</li></ol><p>二、Nginx的备份策略</p><ol><li>在<code>docker-compose.yml</code>文件中,我们定义了一个名为<code>web</code>的Nginx服务。为了实现备份策略,我们将使用Nginx的<code>ngx_http_upstream_module</code>模块来配置负载平衡和反向代理。以下是一个基本的Nginx配置示例:</li></ol><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>http { upstream backend { server app:80; } server { listen 80; server_name localhost; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }</pre><div class="contentsignin">Copier après la connexion</div></div><ol start="2"><li>在上述示例中,我们使用了<code>upstream</code>指令来定义了一个名为<code>backend</code>的后端服务,并将<code>app</code>服务的地址和端口作为其参数。接下来,我们在<code>server</code>块中使用了<code>proxy_pass</code>指令来设置反向代理,将请求转发给<code>backend</code>服务。</li><li>配置完成后,我们可以使用<code>docker-compose up</code>命令来启动所有服务。此时,Nginx将会监听在主机的80端口,并将请求转发给<code>app</code>服务。</li></ol><p>三、MariaDB的备份和恢复策略</p><ol><li>在<code>docker-compose.yml</code>文件中,我们定义了一个名为<code>db</code>的MariaDB服务。为了实现备份和恢复策略,我们将使用MariaDB的<code>mysqldump</code>工具来实现数据库的备份和恢复。以下是一个基本的备份脚本示例:</li></ol><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>#!/bin/bash backup_path="/path/to/backup" date=$(date +%Y%m%d%H%M%S) db_container=$(docker ps --filter "name=db" --format "{{.ID}}") docker exec -it $db_container mysqldump -u root -p<password> --all-databases > $backup_path/db_backup_$date.sql</pre><div class="contentsignin">Copier après la connexion</div></div><ol start="2"><li>在上述示例中,我们使用了<code>mysqldump</code>命令来导出数据库的备份,并将其保存到指定的备份路径下。我们还使用了<code>date</code>命令来生成一个时间戳,以便每次备份都有唯一的文件名。最后,我们通过<code>docker exec</code>命令在<code>db</code>容器中执行备份命令。</li><li>要恢复数据库,我们可以使用以下命令:</li></ol><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>docker exec -i $db_container mysql -u root -p<password> < $backup_path/db_backup_$date.sql</pre><div class="contentsignin">Copier après la connexion</div></div><ol start="4"> <li>在上述命令中,我们使用了<code>mysql</code>命令来执行从备份文件中恢复数据库。通过<code><</code>符号,我们将备份文件的内容导入到了<code>mysql</code> </li>rrreee<ol start="2"></ol>Dans l'exemple ci-dessus, nous avons défini trois services : <code>app</code>, <code>db</code> et <code>web</code>. Parmi eux, le service <code>app</code> est le conteneur de l'application PHP, le service <code>db</code> est le conteneur de la base de données MariaDB et le service <code>web</code> est le conteneur du serveur Nginx. <p><br>Nous utilisons également l'attribut <code>volumes</code> pour monter des volumes de données. Dans l'exemple, nous montons le répertoire <code>./app</code> dans le répertoire <code>/var/www/html</code> du service <code>app</code> pour le stockage persistant du données du programme. </p>🎜🎜2. Stratégie de sauvegarde Nginx🎜🎜🎜Dans le fichier <code>docker-compose.yml</code>, nous définissons un service Nginx nommé <code>web</code>. Afin de mettre en œuvre la stratégie de sauvegarde, nous utiliserons le module <code>ngx_http_upstream_module</code> de Nginx pour configurer l'équilibrage de charge et le proxy inverse. Voici un exemple de configuration de base de Nginx : 🎜🎜rrreee<ol start="2">🎜Dans l'exemple ci-dessus, nous avons utilisé la directive <code>upstream</code> pour définir un fichier appelé <code>backend code > et prend l'adresse et le port du service <code>app</code> comme paramètres. Ensuite, nous utilisons la directive <code>proxy_pass</code> dans le bloc <code>server</code> pour configurer un proxy inverse et transmettre la requête au service <code>backend</code>. 🎜🎜Une fois la configuration terminée, nous pouvons utiliser la commande <code>docker-compose up</code> pour démarrer tous les services. À ce moment, Nginx écoutera sur le port 80 de l'hôte et transmettra la demande au service <code>app</code>. 🎜🎜🎜3. Stratégie de sauvegarde et de récupération MariaDB🎜🎜🎜Dans le fichier <code>docker-compose.yml</code>, nous définissons un service MariaDB nommé <code>db</code>. Afin de mettre en œuvre la stratégie de sauvegarde et de récupération, nous utiliserons l'outil <code>mysqldump</code> de MariaDB pour implémenter la sauvegarde et la récupération de la base de données. Voici un exemple de script de sauvegarde de base : 🎜🎜rrreee<ol start="2">🎜Dans l'exemple ci-dessus, nous avons utilisé la commande <code>mysqldump</code> pour exporter la sauvegarde de la base de données et l'enregistrer dans le spécifié sous le chemin de sauvegarde. Nous avons également utilisé la commande <code>date</code> pour générer un horodatage afin que chaque sauvegarde ait un nom de fichier unique. Enfin, nous exécutons la commande de sauvegarde dans le conteneur <code>db</code> via la commande <code>docker exec</code>. 🎜🎜Pour restaurer la base de données, nous pouvons utiliser la commande suivante : 🎜🎜rrreee<ol start="4">🎜Dans la commande ci-dessus, nous avons utilisé la commande <code>mysql</code> pour effectuer la récupération de la base de données à partir du fichier de sauvegarde. Grâce au symbole <code><</code>, nous importons le contenu du fichier de sauvegarde dans la commande <code>mysql</code>. 🎜🎜🎜Conclusion : 🎜Cet article explique comment utiliser Docker Compose, Nginx et MariaDB pour mettre en œuvre une stratégie de sauvegarde et de récupération des applications PHP. Nous démontrons l'équilibrage de charge et la configuration du proxy inverse de Nginx ainsi que les scripts de sauvegarde et de récupération de MariaDB avec un exemple de code. Grâce à ces étapes, les lecteurs devraient être en mesure de démarrer rapidement et de l'appliquer à leurs propres applications PHP dans des projets réels. J'espère que cet article pourra être utile aux lecteurs. 🎜</ol> </ol></code> </ol> </ol>

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Comment changer la source d'image Docker en Chine Comment changer la source d'image Docker en Chine Apr 15, 2025 am 11:30 AM

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Comment lire la version docker Comment lire la version docker Apr 15, 2025 am 11:51 AM

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment appeler docker lnmp Comment appeler docker lnmp Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Étapes: Exécutez le conteneur: docker run -d --name lnmp-container -p 80:80 -p 443: 443 lnmp-stack pour obtenir le conteneur ip: docker inspect lnmp-container | Site Web d'accès Grep iPadress: http: // & lt; contener ip & gt; /index.phpssh Access: docker exec -it lnmp-container bash access mysql: mysql -u roo

Comment exécuter la commande docker Comment exécuter la commande docker Apr 15, 2025 am 11:24 AM

Comment exécuter les commandes Docker? Installez Docker et démarrez le démon. Commandes docker communes: Docker Images: Afficher l'image docker PS: afficher le conteneur Docker Exécuter: Exécuter le conteneur Docker Stop: Stop Container Docker RM: Delete Container Interagissez avec Container à l'aide de Docker Commande: Docker Exec: Exécuter Commande Docker Docker: Attacher les journaux Docker Console: Afficher le journal Dock

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

See all articles