Apache、LightTPD、Nginx Web サーバー上で PHP 5.x アプリケーションを提供する現在の状態は?

Apache、LightTPD、Nginx Web サーバー上で PHP 5.x アプリケーションを提供する現在の状態は?

過去 1 年半、MS スタック アーキテクチャ/開発のポジションに留まっていたため、オープン ソース スタック ベースの Web サーバーの最近の進化について、思った以上に把握することができませんでした。しかし、現在、オープン ソース スタック ベースのアプリケーション/システム アーキテクチャを構築しており、残念ながら、上記の各 Web サーバーを自分で徹底的にテストして決定する時間がありません。そこで、システム アーキテクチャの最もよく知られているコミュニティから意見をもらうことにしました。

これは、特定のドメインと対象ユーザーに関する情報のリソースとなるサイトであり、ユーザーが情報を見つけるだけでなく、さまざまな理由でさまざまな方法で相互にやり取りできるようにする機能を備えています。

私は、豊富なリソースと MS スタックよりもはるかに優れた機能 (WordPress 対 BlogEngine.NET) を備えたオープン ソース スタックを選択しました。この点では、Java はこれらのスタックの中間に位置すると感じていますが、バックグラウンド プロセスなど、実際の Web アプリ自体とは関係のない特定の領域で Java を使用する可能性も排除していません。

CentOS では、PHP (CodeIgniter フレームワークと APC を使用)、MySQL (InnoDB)、Memcached を使用するという結論にすでに達しています。静的コンテンツは間違いなく Nginx で提供しています。ただし、前述の 3 つのサーバーでは、パフォーマンスの点で動的コンテンツに最適なサーバーがどれかという点で意見が一致していません。LightTPD にはまだリークの問題があるようですが、その場合は除外されます。Nginx はまだこの点に関して十分に成熟していないようです。もちろん、Apache はすべての人のためにあらゆるものを提供しようとしています。

私は、静的リンクなどのパフォーマンスの調整を可能な限り多く行い、選択したものをコンパイルするつもりです。このプロセスを通じて動的コンテンツを提供し、静的コンテンツを提供しないことに関して、Apache を他の 2 つに匹敵させることができると信じています。しかし、調査中、他のものもまだ検討する価値があるようです。

それで、すべてを考慮して、この件に関してここにいる皆さんの意見を聞きたいです。ありがとうございます!

答え1

これを少し疑ってみてください、しかし私の印象Apache は、他の 2 つのサーバーよりも PHP を提供するための設定がやや簡単であるという点です。また、Apache を適切に設定すれば (つまり、不要なモジュールをロードせず、プロセス/スレッドの数を制御するなど)、効率の面で nginx や lighttpd にかなり近づくと思います。動的に生成されるページの場合、lighttpd や nginx を Apache よりも使用することで得られる改善について、多くの人がやや誇張した意見を持っているように思います。

答え2

個人的には、nginx の方が Apache よりも設定が簡単だと思います。Apache の設定を見ると頭が痛くなりがちです。

設定に関して言えば、私が現在好んでいる設定は nginx + php-fpm + APC です。この設定で非常に満足しているクライアントが数社あり、その多くは Apache ベースの設定から移行しています。もちろん、結果は人によって異なります。=)

答え3

CodeIgniter について言及されているので、Kohana をご覧になることをお勧めします。Kohana は元々 CodeIgniter のフォークでしたが、php5 の改良された OO コンセプトに基づいてすべての OO を実装しています。どちらが優れていると言っているわけではなく、最終的には個人の好みの問題です。

関連情報