私は従来、単純にデフォルトでApacheの下にサイトをデプロイしてきました。 NGinXのことを聞いたことがありますが、どの条件の下でNGinXが優れているのか疑問に思っています。 ApacheとNginxに加えて、Webサーバーのその他のオプションとその利点は何ですか?
はい。
以前は、Webサーバーの1つが数時間ごとに負荷が大幅に急上昇していました。ログを調べてみると、多くの人がギャラリーを見ている場所で、負荷の急上昇が発生したことがわかりました。
そのため、静的コンテンツの99%をApacheからnginxにオフロードしました。 Apacheはすべてのphpを提供するために残されました。 Webサーバーの負荷は、ニースの低い数値に低下し、高負荷のスパイクはなくなりました。
サーバーをさらに活用したい場合は、すべての静的コンテンツを提供する軽量サーバーを用意してください。
Apacheは少し重いことがあり、重い負荷がかかると倒れる可能性があります。 nginx、lighttpd、およびcherokeeなど、より軽量のサーバーが利用可能です。
これらの軽量オプションは、静的ファイルをすばやく提供し、動的なサーバー側の作業をApacheに委任するように設定できます。
Webサーバーが山ほどあります。私はあなたが望む使用法に依存することを期待しています。 Apacheは、人々が望むもののほとんどを実行します。優れた更新であり、ほぼすべてのハードウェアとオペレーティングシステムの組み合わせで実行されます。
Webサーバーの比較については、 Webサーバーソフトウェアの比較 を確認してください。
それは本当にあなたが何をしているかに依存します。
静的コンテンツしかない場合は、Apacheは必要ありません。 nginxまたはlighttpdで十分です。
静的と動的(まあ、PerlまたはPHP)が混在しているが、小さなサイトがある場合でも、それらの代替手段とFastCGIのいずれかを使用するか、Apacheにすべてを投げることができます。
静的コンテンツとともにRubyを提供している場合、Apacheのmod_passenger
が適切に機能し、nginx/lighttpd/etcが静的コンテンツを提供します。
Python(私の専門分野)の場合、Apacheでmod_python
を使用することもできますが、速度を落とす準備をします。 mod_wsgi
は優れていますが、Apacheのオーバーヘッドがまだあります。これは問題ありませんif多くの重いがあります=動的トラフィック。ほとんどの場合、Apacheはヘビーリフターです。
大量のトラフィックがない場合は、gunicorn
やuWSGI
などの新しいシステム、またはPythonを処理するオールインワンサーバーCherokeeを調べてください。チェロキーは静的ファイルも処理します。残りは、nginx/lighttpdを使用して静的コンテンツを提供する必要があります。
Javaと他の言語については、私は全く知りません。
ただし、nginxの優れた点は、驚くほど設定しやすいことです。そのため、CSS、画像、JS用にそれぞれ1つずつ、異なるサブドメインを持ついくつかの静的サーバーをセットアップします。これにより、ドメインごとに一度に2ファイルという制限を回避できます。複数のサーバーをセットアップし、それらの前にnginxプロキシ/ロードバランサーをセットアップして、すべての静的コンテンツが常に利用可能であることを確認します。
基本的に、はい、Apacheだけではありません!