web-dev-qa-db-ja.com

Ubuntu Server 12.04 32ビット、Apache、またはNginxでPHPをより速く解釈しますか?

現在、12.04 32ビットUbuntuサーバーにApacheをインストールしていますが、Nginxに切り替えることに興味があります。 Nginxは静的コンテンツを提供するApacheよりも高速ですが、PHPのパフォーマンスはカバーしていません。

私の質問: PHP処理のパフォーマンスに関して、NginxはApacheと比較してどうですか? NginxはPHPでも高速ですか?

6
clonerworks

以下に、ApacheとNginxの比較を示し、いくつかの長所と短所を示します。

対照的に、Apacheは、より多くのプロセスをスピンオフして処理することにより、多数のリクエストにアプローチします。通常、多くのRAMを消費します。そして時々、Apacheはその再ペーストのサイズについて少し不安になります。 Apacheは、_Sudo apt-get install Apache2というクイックパッケージでUbuntuパッケージリポジトリから入手できます。

  • Apacheは、今日最も確立されたWebサーバーであり、他のどのサーバーよりも多くのWebサイトをサポートしています。
  • Apacheは、多くの企業レベルの顧客が動的コンテンツと静的コンテンツの両方の配信に依存している、確立された柔軟なWebサーバーです。
  • Apacheはさまざまなオペレーティングシステムで実行でき、十分にメンテナンスされており、その遍在性は、ユーザーが作成したドキュメントが大量に存在することを意味しています。
  • Apacheは、サーバーの負荷が高いとより多くのメモリを消費するため、パフォーマンスが低下する可能性があります。
  • Apacheの堅牢性により、Apacheのサイズも大きくなり、メモリ消費量が増加します。

Nginx(「engine-ex」と発音)は、速度、速度、速度で定評のある軽量Webサーバーです。 Apacheとは根本的に異なります。Apacheはプロセス駆動型およびスレッド駆動型のアプリケーションですが、Nginxはイベント駆動型です。この設計の違いの実際的な効果は、少数のNginx「ワーカー」プロセスが、互いに待機したり同期したりすることなく、膨大なリクエストのスタックを処理できることです。彼らはただ「目を閉じて」ことわざ象をできるだけ早く、一度に一口ずつ食べます。

  • Nginxはシンプルかつ軽量で、他のWebサーバーよりも少ないハードウェアリソースで済むように設計されています。これは、イベントベースの処理モデルを使用することでこれを部​​分的に実行します。通常、プロセスベースのサーバーが使用するよりも少ないメモリで済みます。
  • Nginxは、静的Webページの提供が高速です。
  • Nginxはより新しく、より確立されたWebサーバーと比較して、ドキュメントとサポートが少なくなっています。
  • また、軽量設計は、カスタマイズがより困難になる可能性があることを意味します。これは、大規模または複雑な構成に必要な場合があります。

違いは、なぜ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つの組み合わせでさえも適切です。

これが役立つことを願っています。

出典:リー・ハッチンソン&ルカシュ・クジャワ

10
Mitch

PHP-FPMを使用したNginxは、mod_phpを使用したApacheよりも一般に高速ですが、パフォーマンスの向上は、ソリューションまたはWebアプリケーションをデプロイする環境(PHPコードの複雑さ、ユーザー/負荷、ハードウェアなど)に依存します。

ウェブサーバーのPHPパフォーマンスの明確な比較がない理由を理解するために、ウェブサーバーをさらに深く掘り下げる必要があります。

Nginxでの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処理能力、実行時間)。また、さまざまなアプリケーション用に専用プールを設定して、パフォーマンスだけでなくセキュリティも向上させる方法を説明したガイドも用意されています。パフォーマンスに関心がある場合は、時間をかけて新しいサーバースタックの主要コンポーネントを理解する必要があります。

Nginxの構成

english project wiki のNginxのドキュメントをお読みください。 Apacheの設定方法、Nginxの動作が異なる理由(例(if is evil)およびその方法を理解するのに非常に役立つことがわかりました。 Nginxで速度の改善を達成します。

ApacheをNginxに置き換えて、Apacheと同じように設定しようとしても、速度がまったく向上しないか、設定が機能しません。

Nginxは基本的に複雑さを軽減すると同時に、幅広い機能セットを提供することを目的としています。

そして、誰がNginxの背後でApacheを実行できないと言ったのですか?

6
LiveWireBT

通常、静的コンテンツが多く、ユーザーリクエストの数が多い場合、nginxは高速であると言われています。あなたが小さなウェブサイトを持っているなら、あなたのウェブサーバーを選択するのは本当にあなたの好み次第です。しかし、質問自体に答えるには、PHP処理自体の違いはごくわずかです。

3
meskobalazs

Nginxを使用できます。Apache2に対して非常に高速であり、ボットは静的および動的であり、応答時間も高速です。

Php、Railsおよびその他のスクリプト言語でも正常に動作します。

0
Gaurav Sharma