プライマリWebサーバーとしてnginxを使用することのマイナス面は?


12

Apacheと連携してプロキシングWebサーバーとしてnginxを使用している何百万ものWebサイトを見てきました。しかし、デフォルトのウェブサーバーとしてのみnginxを実行しているサーバーはほとんどありません。そのような構成の主な欠点は何ですか?

私はいくつかを見ることができます:

  • .htaccessのようなディレクトリごとの構成ファイルを使用できないため、すべての構成変更はメインサーバーの構成ファイルに対して行う必要があり、サーバーの再読み込みが必要です。しかし、pecl htscannerはそれらをphp設定で補正できます
  • nginxのmod_phpが利用できない。これは、たとえばphp-fpmで補うことができます。

他は何ですか?なぜApacheを落としてnginxや他の軽量なソリューションに移行しないのですか?おそらく、いくつかの特別な理由がありますか?

編集:この質問は主にLAMPスタックでの作業に関するものです。


1
マインドシェア、慣性、投資。いつもと同じ。
イグナシオバスケス-アブラムス

新しいサーバーでnginxをセットアップするにはどのような投資が必要ですか?無料のオープンソースソフトウェアです。
ヴラディスラフラストルスニー

3
研究、展開、テストなどに必要な時間の投資
ThatGraemeGuy

私たちが量について話している場合、私見の最大の理由は、Apacheを使用する膨大な数の共有ホストです。共有サービスとして(たとえばcPanel、Pleskなどのように)nginxを設定することは、Apacheで同じことを行うほど簡単ではありません。特にエンドユーザー向けです。また、単一のサイトを実行する多くの専用サーバーを知っていますが、使いやすさ、使いやすさ、セットアップコストが低いという理由だけでcPanel / Plesk / etcを使用しています。
ハリルÖzgür11年

回答:


9

私の#nginxの経験からは、ほとんどの場合、Apache .htaccessファイルに精通しており、それを失いたくない、または依存しているためです。たとえば、静的ファイルのみをオフロードし、ユーザーが操作できるようにapacheを保持したい共有サーバーホスティングを実行している人々。

そして、エンドユーザーのために.htaccessを保持する以外に、Apacheにプロキシする他の理由を本当に考えることはできません。

編集:実際に共有ホスト用のmod_phpとphpsuexecがApacheに固執するもう1つの理由かもしれません。


私の経験から、nginxを介してTomcatから良好なパフォーマンスを得るのはかなり困難です。これは、apache2のajp-workerが高圧下で顕著に高速になるためです。nginxには実験的なajp13実装がありますが、安定しておらず、十分に文書化されていません。
-pauska

1
それは非常に可能です。Nginxは、fastcgiまたはHTTP 1.0リバースプロキシとして最適に機能します。scgi、wsgiなどと通信するためのサードパーティモジュールがあることは知っていますが、それらがどれほど安定しているのか、どれだけ速いのかさえ言えません。
マーティンフィヨルドヴァルド

ところで、mod_phpはsuexecでは動作しません。Suexecはcgiアプリケーション用です。
ヴラディスラフラストルスニー

本当の理由はありません。Apacheを思い出せないほど長い間nginxユーザーでした。:D
マーティンフィヨルドヴァルド

6

Apacheをうまく動作させることができる人がたくさんいるのに、なぜまったく新しいアプリと設定を再学習し、mod_rewriteルールを移行し、mod_perl / php / etc設定をやり直し、再テストし、再デプロイするのですか?

両方のソフトウェアスタックは無料かもしれませんが、「再トレーニング、再開発、再テスト」はそうではなく、いじくり回すためにいじくり回すのではなく、ユーザーが気にする機能を追加することができます1

1私は明らかに、個人的なプロジェクトについて話しているわけではありません。


2

私はNginxが好きですが、2つのことが私がWebサイトでそれを使用するのを妨げています。

  • PHP-FPMのセットアップは困難です。私はまだ最新のPHPバージョンでそれを行うことに成功していません。

  • NginxはHTML5 Websocketをサポートしていません。


1
nginxとphp-fpmで経験した困難を挙げてください。HTML5 WebSocketsについては、Apacheはまだそれらを実行していないようです。issues.apache.org
Vladislav Rastrusny

php-fpmの問題も知りたいです。PHPを使用せずにソースからPHPをコンパイルできる場合は、PHPを使用してそれを実行することも非常に簡単です。
マーティンフィヨルドヴァルド

1
5.3ブランチには既にそれが含まれているので、。/ configure --enable-fpmで完了です。
ヴラディスラフラストルスニー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.