現在、12.04 32ビットUbuntuサーバーにApacheをインストールしていますが、Nginxに切り替えることに興味があります。 Nginxは静的コンテンツを提供するApacheよりも高速ですが、PHPのパフォーマンスはカバーしていません。
私の質問: PHP処理のパフォーマンスに関して、NginxはApacheと比較してどうですか? NginxはPHPでも高速ですか?
以下に、ApacheとNginxの比較を示し、いくつかの長所と短所を示します。
対照的に、Apacheは、より多くのプロセスをスピンオフして処理することにより、多数のリクエストにアプローチします。通常、多くのRAMを消費します。そして時々、Apacheはその再ペーストのサイズについて少し不安になります。 Apacheは、_Sudo apt-get install Apache2
というクイックパッケージでUbuntuパッケージリポジトリから入手できます。
Nginx(「engine-ex」と発音)は、速度、速度、速度で定評のある軽量Webサーバーです。 Apacheとは根本的に異なります。Apacheはプロセス駆動型およびスレッド駆動型のアプリケーションですが、Nginxはイベント駆動型です。この設計の違いの実際的な効果は、少数のNginx「ワーカー」プロセスが、互いに待機したり同期したりすることなく、膨大なリクエストのスタックを処理できることです。彼らはただ「目を閉じて」ことわざ象をできるだけ早く、一度に一口ずつ食べます。
違いは、なぜNginxを使用するのかについてのChris Leaの引用で簡潔に要約されています。ページ:「ApacheはMicrosoft Wordに似ています。100万のオプションがありますが、必要なのは6つだけです。Nginxは6つのことを行い、そのうち5つはApacheの50倍高速です。」
NginxとApacheを比較すると、どちらもオープンソースソフトウェアであり、どちらの陣営も声の支持者のコミュニティを持っています。 NginxはSudo apt-get install Nginx
でUbuntuパッケージリポジトリから入手できます。
最終的に、NginxとApache Webサーバーはどちらも堅実なソリューションですが、特定の状況ではそれぞれに長所があります。 Nginxの主な強みには、静的なWebページをすばやく提供すること、メモリとハードウェアリソースの軽い消費が含まれます。 Apacheは、豊富なモジュールの可用性とドキュメントを備えた、確立された汎用的な主力製品です。ビジネスニーズと技術要件に応じて、どちらか、または2つの組み合わせでさえも適切です。
これが役立つことを願っています。
出典:リー・ハッチンソン&ルカシュ・クジャワ
PHP-FPMを使用したNginxは、mod_php
を使用したApacheよりも一般に高速ですが、パフォーマンスの向上は、ソリューションまたはWebアプリケーションをデプロイする環境(PHPコードの複雑さ、ユーザー/負荷、ハードウェアなど)に依存します。
ウェブサーバーのPHPパフォーマンスの明確な比較がない理由を理解するために、ウェブサーバーをさらに深く掘り下げる必要があります。
ApacheはPHPコードを解釈するためにmod_php
を使用します。 Lighttpd 、初期のNginxのライバルは、独自のspawn_fcgi
(別の FastCGI 実装)を使用して速度を改善し、より多くのユーザーにサービスを提供できるようになりましたApacheと同じかそれ以下のリソースで。したがって、人気を得ています。
NginxはLighttpdとは少し異なります。現在、Nginxは多くの機能をサポートしており、spawn_fcgi
を実行するように設定することもできますが、Lighttpdほどバンドルされていません。 WebサーバーのPHPサポートについて再考することができ、おそらく FastCGI Process Managerプロジェクト (PHP-FPM)につながりました。
PHP-FPMは、12.04からphp-fpm
パッケージを介してUbuntuで利用できます。 Ubuntuパッケージは事前に構成されていますが、ニーズに合わせてプールパラメーターを微調整する方法について検討する価値があります(影響:コードの複雑さ、利用可能なRAMおよびCPU処理能力、実行時間)。また、さまざまなアプリケーション用に専用プールを設定して、パフォーマンスだけでなくセキュリティも向上させる方法を説明したガイドも用意されています。パフォーマンスに関心がある場合は、時間をかけて新しいサーバースタックの主要コンポーネントを理解する必要があります。
english project wiki のNginxのドキュメントをお読みください。 Apacheの設定方法、Nginxの動作が異なる理由(例(if
is evil)およびその方法を理解するのに非常に役立つことがわかりました。 Nginxで速度の改善を達成します。
ApacheをNginxに置き換えて、Apacheと同じように設定しようとしても、速度がまったく向上しないか、設定が機能しません。
Nginxは基本的に複雑さを軽減すると同時に、幅広い機能セットを提供することを目的としています。
そして、誰がNginxの背後でApacheを実行できないと言ったのですか?
通常、静的コンテンツが多く、ユーザーリクエストの数が多い場合、nginxは高速であると言われています。あなたが小さなウェブサイトを持っているなら、あなたのウェブサーバーを選択するのは本当にあなたの好み次第です。しかし、質問自体に答えるには、PHP処理自体の違いはごくわずかです。
Nginxを使用できます。Apache2に対して非常に高速であり、ボットは静的および動的であり、応答時間も高速です。
Php、Railsおよびその他のスクリプト言語でも正常に動作します。