web-dev-qa-db-ja.com

ApacheのリバースプロキシとしてのNginx + php-fpm VSNginx

誰かがNginXをApacheのリバースプロキシとして持つことの利点を教えてもらえますか?静的コンテンツがnginxによって処理され、動的コンテンツ(phpファイル)がApacheに渡されるように人々はそれを提案します。

  1. Php-fcgi/php-fpmにそれらのPHPファイルを直接処理させることは、Apacheのmod_phpに処理させることよりもはるかに合理的ではないでしょうか?

  2. 利点は何ですか(パフォーマンスに関して)

  3. リバースプロキシを選択した場合、nginxの書き換えを行う必要がありますか、それともApacheからの.htaccessはそのまま機能しますか? (逆プロキシであるため、呼び出しはApacheに転送されますよね?)

事前にTY

7
Ansell

リバースプロキシは遅く、一般的に悪いですが、それを使用するいくつかの理由は、.htaccessファイルとの(いくつかの)互換性を維持するためです(純粋なnginxセットアップを使用する場合は書き込む必要があります(常に実用的ではありません))または、特定のApacheモジュールが必要な場合。 (あなたはこれらの要件があると主張する人もいます、Apacheを使う方が簡単です。)

  1. PHP-nginxを使用したFPMが推奨されるソリューションです-nginxの高速静的ファイルサービングと優れたPHPパフォーマンスは、追加のオーバーヘッド、プロキシ、またはApacheの(通常)重要なメモリ使用量を追加することなく得られます。
  2. nginx + PHP-FPMは(通常)高速で、使用するメモリも少なくなります。 Nginx + Apache + FastCGI/FPMは静的ファイルを高速で提供しますが、動的ファイルに追加のオーバーヘッドがあります(mod_phpほど悪くはありませんが、Apacheを排除した場合よりも悪い)。
  3. 両方のビットが必要になります-nginxはパスの処理方法(静的ファイルの提供、.htaccessへのアクセスの拒否など)を知る必要があり、Apacheはファイルの処理方法を知る必要があります。場合によっては、.htaccessファイルが静的ファイルに関係しない場合(したがって、書き換えが必要なすべてのリクエストはApacheに送信されます)、特定の場所へのアクセスを単に拒否し、残りをApacheに任せることが許容される場合があります。 .htaccess経由-理想的ではないようで、パフォーマンスに少しコストがかかり、その信頼性には疑問があります-しかし、簡単なセットアップで動作する可能性があります)。

可能であれば、nginx + PHP-FPMのストレートセットアップを使用してください。できない場合は、リバースプロキシにメリットがあるかもしれませんが、特に.htaccessファイルに依存している場合は、その影響についてよく考えてください。

7
cyberx86

それは逆だと思います。Apacheをミックスから除外すると、パフォーマンスが向上します。 Apacheが提供する他のモジュールが好きな場合、または動的コンテンツにApacheを使用し続ける外部の理由がある場合は、Apacheをそのまま使用します。

静的コンテンツへのアクセスに対して何もしない限り、Apacheに書き換えを処理させることは問題ありません。ただし、nginxconfで.ht*を除外するようにしてください。これらの特定の静的ファイルを誤って一般に提供したくない場合。

1
Michael Lowman

最近、ApacheからNginxに移動しました。私は専門家であるとは主張していませんが、Apacheを削除し、リバースプロキシの代わりにnginxPHP-FPMとともに使用することをお勧めします。 ApacheなしでNginxを使用すると、非静的コンテンツのパフォーマンスがわずかに向上し、静的コンテンツのパフォーマンスが大幅に向上します。 Nginxは.htaccessファイルを使用しないため、これは、すべてのリダイレクトなどを処理するようにNginxを構成する必要があることを意味します。最初は少し気が遠くなるように思えるかもしれませんが、Nginxの構成方法を学んだら、実際には.htaccessファイルを使用するよりもはるかに単純で簡単であることがわかりました。 .htaccessルールをNginxルールに自動的に変換するツールがありますが、代わりに自分で行う方法を学ぶことをお勧めします。ツールが十分に正確に変換せず、使用するifステートメントが多すぎることがわかりました。参照: If Is Evil

0
Dan Bray