ホームページ >バックエンド開発 >PHPチュートリアル >php-fpm プロセス管理を使用して負荷分散を実現する

php-fpm プロセス管理を使用して負荷分散を実現する

WBOY
WBOYオリジナル
2023-07-09 13:07:441084ブラウズ

php-fpm プロセス管理を使用して負荷分散を実現する

インターネット アプリケーションの複雑化とユーザー数の増加に伴い、負荷分散は不可欠なテクノロジになりました。負荷分散の目的は、トラフィックを複数のサーバーに分散してシステムの安定性とパフォーマンスを向上させることです。 PHP アプリケーションでは、php-fpm (PHP FastCGI Process Manager) は負荷分散を実現するために使用できる一般的なプロセス管理ツールであり、柔軟な構成オプションを提供します。

この記事では、php-fpm プロセス管理ツールを使用して負荷分散を実現する方法を紹介し、いくつかのコード例を示します。

1. php-fpm をインストールする

まず、php-fpm がサーバーにインストールされていることを確認する必要があります。次のコマンドを実行して、php-fpm がインストールされているかどうかを確認できます:

$ php-fpm -v

次のような出力が表示された場合、php-fpm は正常にインストールされています:

PHP 7.4.9 (fpm-fcgi) (built: Jul 16 2020 21:48:32)

If php- fpm はインストールされていません。次のコマンドでインストールできます:

$ sudo apt-get install php-fpm

2. php-fpm の設定

負荷分散を実装する前に、php-fpm を設定する必要があります。これには主に次の側面が含まれます。

  1. 仮想ホスト構成

/etc/php/{version}/fpm/pool.d/ ディレクトリに、新しいファイルを作成します。 name 仮想ホストを設定するためのvhost1.confの設定ファイルです。サンプル構成は次のとおりです:

[vhost1]
user = www-data
group = www-data
listen = /var/run/php/vhost1.sock
listen.owner = www-data
listen.group = www-data

このうち、user と group は仮想ホストが実行されるユーザーとグループを指定し、listen は php-fpm がリッスンするソケットのパスを指定します。

  1. プロセス管理構成

/etc/php/{version}/fpm/pool.d/ ディレクトリで、www.conf という名前の構成ファイルを見つけます。プロセス管理を設定します。設定例は以下のとおりです:

[www]
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

このうち、pm設定項目ではプロセス管理モードをダイナミックモードに指定、pm.max_childrenで子プロセスの最大数を指定、pm.start_serversで起動する子の数を指定しています。プロセス; pm.min_spare_servers および pm.max_spare_servers は、アイドル状態の子プロセスの数を指定します。

  1. その他の構成項目

上記の 2 つの主要な構成に加えて、実際のニーズに応じて、メモリ制限、タイムアウトなどの他のオプションを構成することもできます。 。

3. 負荷分散の実装

php-fpm の設定が完了したら、それを使用して負荷分散を実現できます。具体的な手順は次のとおりです:

  1. nginx などの Web サーバーの構成で、複数の php-fpm ソケットにリバース プロキシを構成します。例は次のとおりです:
location / {
    proxy_pass unix:/var/run/php/vhost1.sock;
}

location /vhost2/ {
    proxy_pass unix:/var/run/php/vhost2.sock;
}
  1. php-fpm プロセスを開始します
$ sudo systemctl start php7.4-fpm
  1. 負荷分散効果をテストします

単純な PHP を作成して負荷分散効果をテストできます。サンプルコードは以下のとおりです :

<?php
echo "Hello, World!
";
echo "Server IP: " . $_SERVER['SERVER_ADDR'] . "
";
?>

4. まとめ

この記事では、php-fpm プロセス管理を使用して負荷分散を実現する方法を紹介し、いくつかの設定例とコード例を示します。 。プロセス管理ツール php-fpm と Web サーバーを適切に設定することで、負荷分散が実現され、システムの安定性とパフォーマンスが向上します。実際のアプリケーションでは、キャッシュやデータベースシャーディングなどの他のテクノロジーと組み合わせて、負荷分散効果をさらに最適化することもできます。

以上がphp-fpm プロセス管理を使用して負荷分散を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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