ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのデータベース パフォーマンスを最適化する

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのデータベース パフォーマンスを最適化する

WBOY
WBOYオリジナル
2023-10-12 08:09:111427ブラウズ

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的数据库性能

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのデータベース パフォーマンスを最適化する

はじめに:
PHP アプリケーションを開発およびデプロイする場合、データベースのパフォーマンスは重要な考慮事項です。データベースのパフォーマンスを向上させるために、いくつかのツールとテクニックを使用してデータベースを最適化できます。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのデータベース パフォーマンスを最適化する方法を紹介します。

1. Docker Compose の概要
Docker Compose は、複数の Docker コンテナを簡単に定義して実行するのに役立つコンテナ オーケストレーション ツールです。 Docker Compose を使用すると、複雑なアプリケーションを簡単にデプロイおよび管理できます。

2. Nginx の最適化
Nginx は、静的リソースのキャッシュと負荷分散を提供できる高性能リバース プロキシ サーバーです。 PHP-FPM で Nginx を使用すると、PHP アプリケーションのパフォーマンスを向上させることができます。

  1. Nginx コンテナを定義する
    まず、Docker Compose ファイルで Nginx コンテナを定義します。以下は例です:
version: '3'
services:
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 80:80
    depends_on:
      - php

上の例では、最新バージョンの Nginx イメージを使用し、そのデフォルト設定ファイルをローカルの nginx.conf ファイルを通じて渡します。代替品。

  1. Nginx キャッシュと負荷分散の構成
    Nginx 構成ファイルでは、PHP アプリケーションのパフォーマンスを向上させるために、いくつかのキャッシュと負荷分散戦略を構成できます。以下は例です:
server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://php;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        
        proxy_cache_bypass  $http_upgrade;
        proxy_set_header   Upgrade          $http_upgrade;
        proxy_set_header   Connection       "upgrade";

        proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
        proxy_temp_path  /tmp/nginx/temp;

        proxy_ignore_headers Cache-Control;

        proxy_cache my_cache;
        proxy_cache_valid  200 302  60m;
        proxy_cache_valid  404      1m;
        proxy_cache_valid  any      1m;
    }
}

上の例では、すべてのリクエストを php という名前の PHP-FPM コンテナに転送するようにリバース プロキシを構成しました。さらに、応答速度を向上させるために、一部の静的リソースをキャッシュするプロキシ キャッシュも構成しました。

3. MariaDB の最適化
MariaDB は、高いパフォーマンスとスケーラビリティを提供する人気のリレーショナル データベースです。いくつかの最適化構成を使用すると、MariaDB のパフォーマンスを向上させることができます。

  1. MariaDB コンテナを定義する
    Docker Compose ファイルで、データベースを実行するための MariaDB コンテナを定義できます。以下は例です:
version: '3'
services:
  mysql:
    image: mariadb:latest
    volumes:
      - ./data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=secret
    ports:
      - 3306:3306

上の例では、最新バージョンの MariaDB ミラーリングを使用し、データベース データをローカルの data ディレクトリに保存します。

  1. MariaDB 構成の最適化
    MariaDB コンテナーでは、いくつかの構成ファイルをコンテナーにマウントすることでデータベースのパフォーマンスを最適化できます。以下に例を示します。
version: '3'
services:
  mysql:
    image: mariadb:latest
    volumes:
      - ./data:/var/lib/mysql
      - ./my.cnf:/etc/mysql/my.cnf
    environment:
      - MYSQL_ROOT_PASSWORD=secret
    ports:
      - 3306:3306

上記の例では、ローカルの my.cnf 構成ファイルを MariaDB コンテナ my の /etc/mysql/ にマウントします。 cnf パス。この構成ファイルでは、MariaDB のパフォーマンスを向上させるためにいくつかの最適化パラメーターを設定できます。

4. PHP アプリケーションの構成
PHP アプリケーションでは、いくつかの構成を通じてデータベースのパフォーマンスをさらに最適化することもできます。以下に例を示します。

$db = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'pass');
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

上記の例では、バッファされたクエリの使用を無効にすることでデータベースのパフォーマンスを向上させます。これによりメモリ使用量が削減され、PHP アプリケーションの応答性が向上します。

結論:
Docker Compose、Nginx、MariaDB を使用すると、PHP アプリケーションのデータベース パフォーマンスを簡単に最適化できます。 Nginx のキャッシュと負荷分散を設定することで、静的リソースのアクセス速度を向上させることができます。 MariaDB の構成を最適化することで、データベースのパフォーマンスを向上させることができます。同時に、いくつかの PHP アプリケーションの構成を通じて、データベースのパフォーマンスをさらに最適化できます。この記事が、PHP アプリケーションのデータベース パフォーマンスの最適化に役立つことを願っています。

以上がDocker Compose、Nginx、MariaDB を使用して PHP アプリケーションのデータベース パフォーマンスを最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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