ApacheにはNginxに何が欠けていますか?


11

Nginxは、Apacheよりもはるかにリソース効率が高く、構成が簡単であると言われています。友人から「Apacheでできることはできませんが、とにかくそれらは必要ありません」と言われました。

それでも、私は好奇心が強いです:NginxができないApacheにはどのようなことができますか?完全なリストは必要ありませんが、Apacheがより良い選択になるシナリオの一般的なアイデアが必要です。

回答:


9

Nginxにまだ欠けている最大の部分は、WebDAVの完全サポートです。他のほとんどすべての側面は、コアモジュールまたはサードパーティモジュールでカバーされます。

Nginxはmod_phpなどの設計をサポートしていないため、Nginxにはこれらの部品が欠けているとは言えません。これは、Nginxがこれを使用するのはバカだとかなり力強く言っているようです。


+1 mod_phpを使用する可能性のあるものやそのようなものはすべて「愚か」であることに同意しませんが、残りには同意します。
クリスS

これはphp-hateerコメントですか、それともmod_phpに本質的に悪いことがありますか?リンク?mod_phpを持つ間違っているかを知るために、私はちょうどたいと思い、私は用途がmod_phpを持っているほぼすべてので聞いて...と、私はあなたがより良いと思われるものを気にしないでください
Safado

3
mod_phpは、PHP自体とは関係ありません。PHPとApacheの相互作用に関係しています。問題は、ApacheにPHPを埋め込むと、PHPを処理するプロセスと2kbの画像ファイルを処理するプロセスがまったく同じプロセスになることです。エンドクライアントが遅い場合、非常に高価なプロセスが2秒間小さな画像を提供する可能性があります。この時間はPHPに費やすことができません。
マーティンフィヨルドヴァルド

+1「これは、Nginxがこれを使用するのはバカだとかなり力強く言っているようです。」

4

Apacheには、Nginxでは不可能ないくつかの展開シナリオを可能にする大量のモジュールが用意されています。

1つの例はmod_dav_svn、Subversion over HTTPのホスティングです。それは唯一の Apacheのために利用できます。その他の注目すべき例は、mod_perlまたはなどmod_phpです。ほとんどの従来のセットアップはFCGI(またはWSGI、またはパッセンジャー)でも実行できますが、Webサーバー内にカスタム認証スキームを実装する必要がある場合(たとえば、gitまたはsvnホスティングで行うように) Redmine / ChiliProject)。

一般的に、あなたの友人は正しいです。最も一般的な展開シナリオはnginxでも解決できますが、「特別な」ものを構築する必要がある場合、Apacheはさらに柔軟です。


3

ストーリーの短いバージョンでは、Apacheには多くのプラグインとコミュニティが構築されています。Nginxは、比較的短い期間しか使用されていないため、まだコミュニティコードベースがありません。

Nginxはステーキナイフであり、さまざまな用途に適しており、いくつかの点で非常に優れています。Apacheはスイスアーミーナイフです。さまざまな機能が豊富にあり、それらすべてをかなりうまく機能しています。


Nginxでできることについては少し時代遅れになっていると思います。一部の分野では、Apacheよりもはるかに汎用性があります。HTTP / 1.1プロキシとWebDAVが不足しているため、欠落しているものは多くありません。
マーティンフィヨルドヴァルド

@MartinFjordvald Nginxが意図的に実行しないことを選択した関数はかなりありますが、それらが「欠落」しているとは言えませんが、NginxがApacheのすべてを実行できると主張することはできません。それはトレードオフであり、私はNginxが彼らが行った選択を称賛します。
クリスS

私の元々のコメントHTTP / 1.1プロキシがサポートされるようになったので、webdavとsvnホスティングはサポートされていません。これは、動的にリンクされたモジュールのような問題を考慮しない場合です。これは、nginxがこれまでのところ行わないと決定したことは事実です。
マーティンフィヨルドヴァルド

1

開始のための多くのモジュールと巨大なインストールベース。しかし、それはApacheが正確に何ではありません持っている、あなたが見てする必要があることApacheは何でありません:それはなどPHP、PythonやPerlやJavaの、のような動的なコンテンツを提供するためのより良い方法を動作します

もちろん、Nginxでもそれを行うことができます(しかし、それは少しハックっぽいIMHOです)が、ソリューションは、NginXよりもApacheで実行する方が実証済みで成熟しており、高負荷と優れたサービスでApacheよりもはるかに優れていますリライタ/リバースプロキシ。

各ジョブに適切なツール!


たぶん、これは私が最初に運用Webサーバーにnginxをデプロイした2008年以前に当てはまりましたが、今はそうではないようです。ApacheのインタープリターをWebサーバーに含めるモデルの方が優れていると思われる理由の拡大を楽しみにしています。
マイケルハンプトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.