Rumah pembangunan bahagian belakang tutorial php Melaksanakan strategi sandaran dan pemulihan untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

Melaksanakan strategi sandaran dan pemulihan untuk aplikasi PHP menggunakan Docker Compose, Nginx dan 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>Melaksanakan strategi sandaran dan pemulihan untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB</p> <p>Pengenalan: <br>Dalam pembangunan perisian moden, strategi sandaran dan pemulihan adalah bahagian yang penting. Apabila mereka bentuk strategi sandaran dan pemulihan untuk aplikasi PHP, kami boleh menggunakan gabungan Docker Compose, Nginx dan MariaDB untuk mencapai penyelesaian yang boleh dipercayai dan fleksibel. Artikel ini akan menyediakan langkah terperinci dan contoh kod untuk membantu pembaca bermula dengan cepat. </p> <p>1. Buat fail Docker Compose</p> <ol><li>Mula-mula, kita perlu mencipta fail bernama <code>docker-compose.yml</code> dan tentukan perkhidmatan kami di dalamnya. Berikut ialah struktur asas fail sampel: <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">Salin selepas log masuk</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">Salin selepas log masuk</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">Salin selepas log masuk</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">Salin selepas log masuk</div></div><ol start="4"> <li>在上述命令中,我们使用了<code>mysql</code>命令来执行从备份文件中恢复数据库。通过<code><</code>符号,我们将备份文件的内容导入到了<code>mysql</code> </li>rrreee<ol start="2"></ol>Dalam contoh di atas, kami menentukan tiga perkhidmatan: <code>app</code>, <code>db</code> dan <code>web</code>. Antaranya, perkhidmatan <code>app</code> ialah bekas aplikasi PHP, perkhidmatan <code>db</code> ialah bekas pangkalan data MariaDB dan perkhidmatan <code>web</code> ialah bekas pelayan Nginx. <p><br>Kami juga menggunakan atribut <code>volume</code> untuk melekapkan volum data. Dalam contoh, kami melekapkan direktori <code>./app</code> ke direktori <code>/var/www/html</code> perkhidmatan <code>app</code> untuk penyimpanan berterusan bagi data program. </p>🎜🎜2. Strategi sandaran Nginx🎜🎜🎜Dalam fail <code>docker-compose.yml</code>, kami mentakrifkan perkhidmatan Nginx bernama <code>web</code>. Untuk melaksanakan strategi sandaran, kami akan menggunakan modul <code>ngx_http_upstream_module</code> Nginx untuk mengkonfigurasi pengimbangan beban dan proksi terbalik. Berikut ialah contoh konfigurasi asas Nginx: 🎜🎜rrreee<ol start="2">🎜Dalam contoh di atas, kami menggunakan arahan <code>upstream</code> untuk mentakrifkan fail yang dipanggil <code>backend code >'s backend service, dan mengambil alamat dan port perkhidmatan <code>app</code> sebagai parameternya. Seterusnya, kami menggunakan arahan <code>proxy_pass</code> dalam blok <code>server</code> untuk menyediakan proksi terbalik dan memajukan permintaan ke perkhidmatan <code>backend</code>. 🎜🎜Selepas konfigurasi selesai, kita boleh menggunakan perintah <code>docker-compose up</code> untuk memulakan semua perkhidmatan. Pada masa ini, Nginx akan mendengar pada port 80 hos dan memajukan permintaan ke perkhidmatan <code>app</code>. 🎜🎜🎜3. Strategi sandaran dan pemulihan MariaDB🎜🎜🎜Dalam fail <code>docker-compose.yml</code>, kami mentakrifkan perkhidmatan MariaDB bernama <code>db</code>. Untuk melaksanakan strategi sandaran dan pemulihan, kami akan menggunakan alat <code>mysqldump</code> MariaDB untuk melaksanakan sandaran dan pemulihan pangkalan data. Berikut ialah contoh skrip sandaran asas: 🎜🎜rrreee<ol start="2">🎜Dalam contoh di atas, kami menggunakan perintah <code>mysqldump</code> untuk mengeksport sandaran pangkalan data dan menyimpannya ke ditentukan di bawah laluan sandaran. Kami juga menggunakan perintah <code>date</code> untuk menjana cap masa supaya setiap sandaran mempunyai nama fail yang unik. Akhir sekali, kami melaksanakan perintah sandaran dalam bekas <code>db</code> melalui perintah <code>docker exec</code>. 🎜🎜Untuk memulihkan pangkalan data, kita boleh menggunakan arahan berikut: 🎜🎜rrreee<ol start="4">🎜Dalam arahan di atas, kami telah menggunakan perintah <code>mysql</code> untuk melaksanakan pemulihan pangkalan data daripada fail sandaran. Melalui simbol <code><</code>, kami mengimport kandungan fail sandaran ke dalam perintah <code>mysql</code>. 🎜🎜🎜Kesimpulan: 🎜Artikel ini menerangkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk melaksanakan strategi sandaran dan pemulihan untuk aplikasi PHP. Kami menunjukkan pengimbangan beban Nginx dan konfigurasi proksi terbalik serta skrip sandaran dan pemulihan MariaDB dengan kod sampel. Melalui langkah-langkah ini, pembaca seharusnya dapat bermula dengan cepat dan menerapkannya pada aplikasi PHP mereka sendiri dalam projek sebenar. Semoga artikel ini dapat memberi manfaat kepada pembaca. 🎜</ol> </ol></code> </ol> </ol>

Atas ialah kandungan terperinci Melaksanakan strategi sandaran dan pemulihan untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Mengubah Sumber Imej Docker di China Cara Mengubah Sumber Imej Docker di China Apr 15, 2025 am 11:30 AM

Anda boleh beralih ke sumber cermin domestik. Langkah -langkah adalah seperti berikut: 1. Edit fail konfigurasi /etc/docker/daemon.json dan tambahkan alamat sumber cermin; 2. Selepas menyimpan dan keluar, mulakan semula perkhidmatan Docker Sudo SystemCtl Docker untuk meningkatkan kelajuan muat turun dan kestabilan imej.

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara Membaca Versi Docker Cara Membaca Versi Docker Apr 15, 2025 am 11:51 AM

Untuk mendapatkan versi Docker, anda boleh melakukan langkah -langkah berikut: Jalankan arahan Docker "Docker -version" untuk melihat versi klien dan pelayan. Untuk MAC atau Windows, anda juga boleh melihat maklumat versi melalui tab versi Docktop GUI atau menu desktop Docker.

Cara membuat cermin di Docker Cara membuat cermin di Docker Apr 15, 2025 am 11:27 AM

Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

Cara memanggil Docker LNMP Cara memanggil Docker LNMP Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Langkah: Jalankan bekas: Docker Run -D -Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack Untuk mendapatkan IP Container: Docker Memeriksa LNMP -Container | GREP IPADDRESS ACCESS Laman web: http: // & lt; container ip & gt; /index.phpssh akses: docker exec -it lnmp -container bash akses mysql: mysql -u roo

Cara Menyelamatkan Gambar Docker Cara Menyelamatkan Gambar Docker Apr 15, 2025 am 11:54 AM

Untuk menyimpan imej di Docker, anda boleh menggunakan arahan Docker Commit untuk membuat imej baru, yang mengandungi keadaan semasa bekas yang ditentukan, Sintaks: Docker Commit [Options] Nama Imej Container ID. Untuk menyimpan imej ke repositori, anda boleh menggunakan arahan PUSH Docker, Sintaks: Docker Push Nama Imej [: TAG]. Untuk mengimport imej yang disimpan, anda boleh menggunakan arahan tarik docker, sintaks: docker tarik nama imej [: tag].

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Cara menjalankan arahan Docker Cara menjalankan arahan Docker Apr 15, 2025 am 11:24 AM

Bagaimana cara menjalankan arahan Docker? Pasang Docker dan mulakan daemon. Perintah Docker Biasa: Docker Images: Paparan Docker Imej PS: Paparan Docker Container Run: Run Container Docker Stop: Stop Container Docker RM: Padam Container Berinteraksi dengan Kontena Menggunakan Docker Command: Docker Exec: Execute Command Docker Lampir

See all articles