Pemulihan dan pemulihan bencana untuk aplikasi PHP dengan Docker Compose, Nginx dan MariaDB
Pemulihan dan pemulihan bencana ialah topik penting dan sangat kritikal untuk sebarang aplikasi. Dalam persekitaran pengkomputeran awan moden, pemulihan dan pemulihan bencana aplikasi boleh dicapai dengan mudah menggunakan teknologi kontena. Artikel ini akan memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk melaksanakan pemulihan bencana dan pemulihan aplikasi PHP, dan menyediakan contoh kod khusus.
Pertama, kita perlu mentakrifkan fail Karang Docker yang menerangkan pelbagai komponen aplikasi kita dan perhubungan antara mereka. Berikut ialah contoh mudah:
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:
Fail Docker Compose di atas mentakrifkan dua perkhidmatan: web dan db. Perkhidmatan web adalah aplikasi PHP kami dan ia akan dijalankan melalui Nginx. Perkhidmatan db ialah pangkalan data MariaDB yang digunakan untuk menyimpan data aplikasi.
Seterusnya, kami perlu menulis fail konfigurasi Nginx untuk memajukan permintaan ke aplikasi PHP kami. Berikut ialah contoh fail konfigurasi:
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; } }
Dalam fail konfigurasi di atas, kami menggunakan arahan fastcgi_pass untuk memajukan permintaan ke perkhidmatan Docker bernama web, dengan nombor port ialah 9000.
Akhir sekali, kita perlu menulis aplikasi PHP dan membungkusnya ke dalam imej bekas bersama-sama dengan kod di atas. Di bawah ialah contoh aplikasi PHP mudah:
<?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(); ?>
Aplikasi PHP di atas ialah contoh pertanyaan pangkalan data ringkas yang bersambung ke pangkalan data MariaDB bernama db dan melaksanakan pertanyaan. Hasil pertanyaan akan dikeluarkan kepada penyemak imbas.
Untuk mencapai kesediaan dan pemulihan bencana, kami boleh menggunakan arahan Docker Compose untuk memulakan dan menghentikan aplikasi kami. Berikut ialah beberapa contoh arahan yang biasa digunakan:
# 启动应用程序 docker-compose up -d # 停止应用程序 docker-compose down
Dengan menggunakan arahan ini, kami boleh mencipta dan memusnahkan contoh aplikasi kami dengan mudah untuk mencapai matlamat kesediaan bencana dan pemulihan.
Ringkasan:
Dengan Docker Compose, Nginx dan MariaDB, kami boleh melaksanakan pemulihan bencana dan pemulihan aplikasi PHP dengan mudah. Menggunakan teknologi kontena, kami boleh menggunakan dan memusnahkan contoh aplikasi dengan cepat dan menggunakan Nginx sebagai proksi terbalik untuk mencapai pengimbangan beban trafik. MariaDB menyediakan fungsi pangkalan data yang berkuasa untuk menyimpan dan mengurus data aplikasi. Contoh kod yang disediakan di atas boleh membantu pembaca memahami cara melaksanakan fungsi ini dan menyesuaikan aplikasi mereka sendiri berdasarkannya.
Atas ialah kandungan terperinci Pemulihan bencana dan pemulihan aplikasi PHP dengan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!