2 つの展開方法の紹介
最初の方法
2 番目のデプロイ方法
- Web サービス用に前面に 1 台の nginx サーバー
- 背面サーバーは、nginx サーバーが呼び出すための php-fpm サービスのみをデプロイします
- Front One nginx サーバーは、次に示すように、後で複数の php-fpm サービスを呼び出すときに負荷分散を実現することもできます。
##比較
#システム設計の観点から
#最初の展開は従来の展開方法であり、大規模、中規模、小規模の Web サイトに適用できます。
2 番目のタイプは、異なるサービスが異なるサーバーにデプロイされるもので、これはより詳細です。しかし、いくつかの問題もあります。
フロントエンド nginx は Web サービスとして機能します。すべての静的リソース アクセス、圧縮転送、およびキャッシュ設定はこのサーバーに集中されます。大きなプレッシャーがかかり、それがボトルネックになりやすいです。
-
静的リソースがすべて CDN に保存されており、HTTP 圧縮送信が必要ない場合、このデプロイ方法は非常に合理的です。
-
上記 2 の場合、この展開方法も最適化できます。前面の負荷分散層とリバース プロキシ層の後に、中央に Nginx Web サーバーがあり、その背後に PHP-FPM サービスがデプロイされます。パフォーマンスの観点から見ると、
-
#2 番目の展開方法と比較すると、最初の方法ではプロセス間の対話が 1 つ多く必要になります。
最初のデプロイメントによると、http リクエストが来ると、まず nginx リバース プロキシがそれを (ネットワーク経由で) nginx Web サービスに転送し、その後 Web サービスが php と通信します。 fastcgi プロトコルを介した -fpm インタラクション (プロセス間インタラクション);
-
2 番目のデプロイメントによると、http リクエストが来ると、nginx は Web サービスとして機能し、php と直接対話します。ネットワークを介した -fpm
-
最初の展開では、http プロトコルを使用してネットワークを介して対話し、2 番目のタイプでは、fast-cgi プロトコルを使用してネットワークを介して対話します。これら 2 つのプロトコルはどのように比較されますか?
高速 CGI データ パケットは http よりわずかに大きく、高速 CGI プロトコルは http よりも多くのパラメータ情報、送信制御情報などを運びます。高速 CGI プロトコルは、http プロトコルよりも厳密にフォーマットされており、解析が高速です。運用と保守の観点から見る
1 つ目は最も一般的な展開方法で、シンプルで統一されています。Web サービスを提供するすべてのサーバー上のサービスは同型であり、単調で広範囲です。
2 つ目は、nginx と php-fpm を別々にデプロイすることで、サーバー クラスター上でのさまざまなサービスの分散がより詳細になります。 Web サービスの圧力分布をカウントすると、ハードウェア リソースをより正確に利用できます。運用保守コストも高くなります。
開発とテストの観点から
どちらの展開方法も、開発環境やテスト環境には適していません。
開発およびテスト環境では、nginx と php を 1 つのサーバーにデプロイでき、リバース プロキシやロード バランシングは必要ありません。
以上がNginxとPHPの導入方法とはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。