web-dev-qa-db-ja.com

PHP=ページ、ApacheまたはNGINX

提供するためにApache上でNGINXを実行することの主な利点についてかなり読んだ静的ファイル。ただし、PHPページを提供するためのApacheとNGINXについて説明している記事を見たことがありません。

質問:提供する方が速い[〜#〜] php [〜#〜]ページ、ApacheまたはNGINX?

15
TeddyR

個人的には、nginxはそれ自体が行うこと(HTTPリクエストの受信と処理)と他のプロセスに委任すること(動的ページ生成)の間で適切な分割を提供すると思います。 PHPリクエストを処理するようにApacheをセットアップするのはそれほど労力ではありませんが、Apache内ですべてを実行することは、セキュリティと構成の問題です(サーバー上のすべてのユーザーによって実行されるすべてのスクリプトによってアクセスされるすべてのファイル- 必須 Apacheを実行するユーザーが読み取り/書き込み可能である必要があります。つまり、1人のユーザーのPHPスクリプトが他のユーザーのデータを見ることができます)。各PHPサイトを独自のFastCGIコンテキストで独自のユーザーとして実行することは、はるかに優れたオプションです(サイト作成の自動化が適切に行われるようにダイヤルインするまで、事前の設定を少し増やします)事)。

「高速」である限り、mod_phpを使用したApacheは、マシンにリソースの制約がない限り(外部FCGIリスナーに渡してから戻すのがそれほど速くない限り)、おそらく1回のリクエストでより速くなります。ただし、Apacheはかなり太っている(特に mod_phpで実行する場合)ので、より大きなボックスにアップグレードする必要がある前に、nginxでより多くのトラフィックを処理できるようになります。

9
womble

Nginxの作者は、nginxは静的ファイルを提供し、フロントエンドであり、動的ページを必要とするリクエストをApacheなどの他のサーバーに転送することを目的としていると述べています。

もう1つの良いアイデアは、アーカイブされたブログ投稿など、データがめったに更新されない場合に、Apacheの動的リクエストをnginxでキャッシュすることです。

5
flashnik

ほとんどの場合、nginx。高負荷プロジェクトでは、nginx + php + php-fpmが最適です。

2