ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略の実装
Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略
はじめに:
最新のソフトウェア開発において、バックアップとリカバリ戦略は重要な部分です。 PHP アプリケーションのバックアップおよびリカバリ戦略を設計する場合、Docker Compose、Nginx、MariaDB を組み合わせて使用することで、信頼性が高く柔軟なソリューションを実現できます。この記事では、読者がすぐに使い始めるのに役立つ詳細な手順とコード例を提供します。
1. Docker Compose ファイルを作成する
docker-compose.yml
という名前のファイルを作成し、その中にサービスを定義する必要があります。サンプル ファイルの基本構造は次のとおりです。 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
app
、db
そしてウェブ
。このうち、app
サービスは PHP アプリケーションのコンテナー、db
サービスは MariaDB データベースのコンテナー、web
サービスはコンテナーです。 Nginxサーバーの。 volumes
属性も使用します。この例では、./app
ディレクトリを app
サービスの /var/www/html
ディレクトリにマウントして、アプリケーション データを永続的に保存します。 2. Nginx バックアップ戦略
docker-compose.yml
ファイルで、web
という名前のファイルを定義します。 Nginxサービス。バックアップ戦略を実装するには、Nginx の ngx_http_upstream_module
モジュールを使用してロード バランシングとリバース プロキシを構成します。以下は、基本的な Nginx 構成の例です。 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; } } }
upstream
ディレクティブを使用して、backend## というファイルを定義しました。のバックエンド サービスであり、
app サービスのアドレスとポートをパラメータとして受け取ります。次に、
server ブロックの
proxy_pass ディレクティブを使用して、リバース プロキシを設定し、リクエストを
backend サービスに転送します。
コマンドを使用してすべてのサービスを開始できます。この時点で、Nginx はホストのポート 80 でリッスンし、リクエストを
app サービスに転送します。
ファイルで、
MariaDB サービスという名前のファイルを定義します。 dbの。バックアップとリカバリ戦略を実装するために、MariaDB の
mysqldump ツールを使用してデータベースのバックアップとリカバリを実装します。基本的なバックアップ スクリプトの例を次に示します。
#!/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
コマンドを使用してデータベースのバックアップをエクスポートし、バックアップパスの下に指定されています。また、
date コマンドを使用してタイムスタンプを生成し、各バックアップが一意のファイル名を持つようにしました。最後に、
docker exec コマンドを使用して、
db コンテナーでバックアップ コマンドを実行します。
docker exec -i $db_container mysql -u root -p<password> < $backup_path/db_backup_$date.sql
コマンドを使用してデータベースを復元するためのバックアップ ファイル。
< 記号を使用して、バックアップ ファイルの内容を
mysql コマンドにインポートします。
この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのバックアップとリカバリ戦略を実装する方法を紹介します。 Nginx のロード バランシングとリバース プロキシ構成、MariaDB のバックアップとリカバリ スクリプトをサンプル コードで示します。これらの手順を通じて、読者はすぐに使い始めて、実際のプロジェクトで独自の PHP アプリケーションに適用できるはずです。この記事が読者にとって役立つことを願っています。
以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。