web-dev-qa-db-ja.com

PginでNginxが必要なのはなぜですか?

Railsアプリを本番環境にデプロイしています。Pumaは高速で、Webサーバーで必要な多くのことを処理しているようです。

私はNginxに悩む必要があるかどうか疑問に思っています、そして単にプーマを使用した場合に私は何を逃しているでしょうか?

13
gylaz

NginxはWebサーバーで、pumaはアプリケーションサーバーです。どちらにも利点があり、両方が必要です。

いくつかの例:

  • 静的リダイレクト-すべてのhttpトラフィックをhttpsを使用して同じURLにリダイレクトするようにnginxを設定できます。このようにして、そのような些細なリクエストがアプリサーバーにヒットすることはありません。

  • マルチパートアップロード-Nginxはマルチパートアップロードの処理に適しています。 Nginxはすべてのリクエストを結合し、単一のファイルとしてプーマに送信します。

  • 静的アセットの提供-静的アセットを提供することをお勧めします(/public/ Railsのエンドポイント)アプリサーバーを読み込まずにウェブサーバー経由で。

  • Nginxには、いくつかの基本的なDDoS保護が組み込まれています。

19
vedant

Webサーバーとアプリケーションサーバーには大きな違いがあります。 Nginx(Webサーバー)とPuma(アプリサーバー)は、アプリケーション内のリクエストを同時に処理します。

クライアントからの要求があるときはいつでも、それはnginxによって受信され、それからPumaであるアプリケーションサーバーに転送されます。

NginxをWebサーバーとして使用すると、複数のリクエストをより効率的に処理できます。マルチスレッドサーバーであるため、リクエストが複数のスレッドに分散され、アプリケーションがより高速になります。

ベンダントが述べたように、Webサーバーを使用して静的ページを提供できます。

Webアプリケーションに証明書を含める場合は、ここからhttpからhttpsへのリダイレクトを提供できます。これにより、httpsにリダイレクトした後でのみアプリサーバーにアクセスできます。

Pumaを使用する場合は、サーバーがリソースを効率的に使用していることを確認する必要がありますが、nginxを使用する場合は、サーバーがそれ自体で処理します。

あなたはより多くの情報を得ることができます ここ

7
Gagan Gupta