2つの導入方法の紹介
最初の方法
- HTTPリバースプロキシと負荷分散を行うために前にある1つのnginxサーバー
- 後ろのNサーバーのNginxはWebサービスを実行し、phpを呼び出します-fpm 提供される高速 CGI サービス
- この種のデプロイ方法は、Web サービスと PHP サービスの両方が同じサーバー上にデプロイされるのが最も一般的です
2 番目のタイプ
- に nginx サーバーが配置されます。 Webサービスのフロント
- バック nginxサーバーが呼び出すためのphp-fpmサービスのみを展開します
- 後から複数のphp-fpmサービスを呼び出す際にも負荷分散が可能です
。
以下に示すように:
![Nginx 和 PHP 的两种部署方式比较](http://image.codes51.com/Article/image/20151028/20151028170631_0399.png)
比較
システム設計の観点から
最初の展開方法は、大規模、中規模、および小規模の Web サイトに適用できる従来の展開方法です。
2 番目の方法は、異なるサーバーに異なるサービスをデプロイすることであり、これはより詳細です。しかし、いくつかの問題もあります:
- フロントエンドの nginx は Web サービスとして機能します。静的リソースへのアクセス、圧縮送信、キャッシュ設定等もこのサーバーに集中します。大きなプレッシャーがかかり、それがボトルネックになりやすいです。
- 静的リソースがすべて CDN に保存され、HTTP 圧縮送信が必要ない場合、このデプロイ方法は比較的合理的です。
- 上記 2 つの点を考慮すると、このデプロイ方法も最適化できます。たとえば、nginx ロード バランシングとリバース プロキシが前面に配置され、nginx Web サービスが中間に、php-fpm サービスが背面にデプロイされます。
パフォーマンスの観点から
2 番目の展開方法と比較して、最初の方法ではプロセス間の対話が 1 つ多く必要になります。
- 最初のデプロイメントによると、http リクエストが来ると、まず nginx リバース プロキシがそれを (ネットワーク経由で) nginx Web サービスに転送し、Web サービスは fastcgi プロトコル (プロセス間) を通じて php-fpm と対話します。インタラクション); 2 番目のデプロイメントによれば、http リクエストが来ると、Web サービスとして機能する nginx はネットワークを介して php-fpm と直接対話します
- 最初のデプロイメントでは、ネットワークを介したインタラクションはHTTP プロトコル、そして 2 番目のタイプのネットワーク経由の対話、それは fast-cgi プロトコルです。これら 2 つのプロトコルはどのように比較されますか?
高速 CGI データ パケットは HTTP よりわずかに大きく、高速 CGI プロトコルは HTTP よりも多くのパラメータ情報、送信制御情報などを運びます。
- 高速 CGI プロトコルは、HTTP プロトコルよりも厳密にフォーマットされており、解析が高速です。
-
運用と保守の観点から
1 つ目は、シンプルで統一された最も一般的な展開方法であり、Web サービスを提供するすべてのサーバー上のサービスは同形で単調かつ広範囲です。 2 番目の方法は、nginx と php-fpm を別々にデプロイすることであり、サーバー クラスター上でのさまざまなサービスの分散がより詳細になります。 Web サービスの圧力分散をカウントすると、ハードウェア リソースをより正確に利用できます。運用保守コストも高くなります。
開発とテストの観点から
どちらの展開方法も、開発環境やテスト環境には適していません。
開発およびテスト環境では、nginx と PHP を 1 つのサーバーにデプロイでき、リバース プロキシとロード バランシングは必要ありません。
概要
LAMP 環境のデプロイメントの場合は、最初のタイプがより一般的です。
LAMP ではない場合は、C/C++ や Java fastcgi プログラムなどの他の fastcgi サービスと対話する nginx です。大規模なネットワーク アプリケーションでは、2 番目のような展開が一般的です。さまざまなサービスを個別に展開すると、システムのネットワーク構造が簡素化され、メンテナンスが容易になります。
追記
このブログ投稿の内容は、QQ グループの元 Baidu 同僚とのディスカッションに基づいています。
転載の際は出典を明記してください
ブログホームページ:Zuochengの技術ブログ
記事タイトル:「Nginx」
PHPの2つの導入方法の比較》
この記事へのリンク: http://it.zuocheng.net/compare-2-nginx-php-deployee-mode-zh
上記では、関連する側面を含め、Nginx と PHP の 2 つのデプロイメント方法の比較を紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。