ホームページ >バックエンド開発 >PHPチュートリアル >php-fpm プロセス管理を使用して負荷分散を実現する
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 を設定する必要があります。これには主に次の側面が含まれます。
/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 がリッスンするソケットのパスを指定します。
/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 は、アイドル状態の子プロセスの数を指定します。
上記の 2 つの主要な構成に加えて、実際のニーズに応じて、メモリ制限、タイムアウトなどの他のオプションを構成することもできます。 。
3. 負荷分散の実装
php-fpm の設定が完了したら、それを使用して負荷分散を実現できます。具体的な手順は次のとおりです:
location / { proxy_pass unix:/var/run/php/vhost1.sock; } location /vhost2/ { proxy_pass unix:/var/run/php/vhost2.sock; }
$ sudo systemctl start php7.4-fpm
単純な PHP を作成して負荷分散効果をテストできます。サンプルコードは以下のとおりです :
<?php echo "Hello, World! "; echo "Server IP: " . $_SERVER['SERVER_ADDR'] . " "; ?>
4. まとめ
この記事では、php-fpm プロセス管理を使用して負荷分散を実現する方法を紹介し、いくつかの設定例とコード例を示します。 。プロセス管理ツール php-fpm と Web サーバーを適切に設定することで、負荷分散が実現され、システムの安定性とパフォーマンスが向上します。実際のアプリケーションでは、キャッシュやデータベースシャーディングなどの他のテクノロジーと組み合わせて、負荷分散効果をさらに最適化することもできます。
以上がphp-fpm プロセス管理を使用して負荷分散を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。