ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略の実装

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略の実装

王林
王林オリジナル
2023-10-12 09:52:421064ブラウズ

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的备份和恢复策略

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略

はじめに:
最新のソフトウェア開発において、バックアップとリカバリ戦略は重要な部分です。 PHP アプリケーションのバックアップおよびリカバリ戦略を設計する場合、Docker Compose、Nginx、MariaDB を組み合わせて使用​​することで、信頼性が高く柔軟なソリューションを実現できます。この記事では、読者がすぐに使い始めるのに役立つ詳細な手順とコード例を提供します。

1. Docker Compose ファイルを作成する

  1. まず、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
  1. 上の例では、3 つのサービスが定義されています: appdbそしてウェブ。このうち、app サービスは PHP アプリケーションのコンテナー、db サービスは MariaDB データベースのコンテナー、web サービスはコンテナーです。 Nginxサーバーの。
  2. データ ボリュームをマウントするために volumes 属性も使用します。この例では、./app ディレクトリを app サービスの /var/www/html ディレクトリにマウントして、アプリケーション データを永続的に保存します。

2. Nginx バックアップ戦略

  1. 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;
    }
  }
}
  1. 上記の例では、upstream ディレクティブを使用して、backend## というファイルを定義しました。のバックエンド サービスであり、app サービスのアドレスとポートをパラメータとして受け取ります。次に、server ブロックの proxy_pass ディレクティブを使用して、リバース プロキシを設定し、リクエストを backend サービスに転送します。
  2. 構成が完了したら、
  3. docker-compose up コマンドを使用してすべてのサービスを開始できます。この時点で、Nginx はホストのポート 80 でリッスンし、リクエストを app サービスに転送します。
3. MariaDB のバックアップおよびリカバリ戦略

  1. docker-compose.yml ファイルで、 MariaDB サービスという名前のファイルを定義します。 dbの。バックアップとリカバリ戦略を実装するために、MariaDB の mysqldump ツールを使用してデータベースのバックアップとリカバリを実装します。基本的なバックアップ スクリプトの例を次に示します。
  2. #!/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
    上記の例では、
  1. mysqldump コマンドを使用してデータベースのバックアップをエクスポートし、バックアップパスの下に指定されています。また、date コマンドを使用してタイムスタンプを生成し、各バックアップが一意のファイル名を持つようにしました。最後に、docker exec コマンドを使用して、db コンテナーでバックアップ コマンドを実行します。
  2. データベースを復元するには、次のコマンドを使用できます:
  3. docker exec -i $db_container mysql -u root -p<password> < $backup_path/db_backup_$date.sql
    上記のコマンドでは、
  1. mysql コマンドを使用してデータベースを復元するためのバックアップ ファイル。 < 記号を使用して、バックアップ ファイルの内容を mysql コマンドにインポートします。
結論:

この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのバックアップとリカバリ戦略を実装する方法を紹介します。 Nginx のロード バランシングとリバース プロキシ構成、MariaDB のバックアップとリカバリ スクリプトをサンプル コードで示します。これらの手順を通じて、読者はすぐに使い始めて、実際のプロジェクトで独自の PHP アプリケーションに適用できるはずです。この記事が読者にとって役立つことを願っています。

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのバックアップとリカバリ戦略の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。