Railsアプリを本番環境にデプロイしています。Pumaは高速で、Webサーバーで必要な多くのことを処理しているようです。
私はNginxに悩む必要があるかどうか疑問に思っています、そして単にプーマを使用した場合に私は何を逃しているでしょうか?
NginxはWebサーバーで、pumaはアプリケーションサーバーです。どちらにも利点があり、両方が必要です。
いくつかの例:
静的リダイレクト-すべてのhttp
トラフィックをhttps
を使用して同じURLにリダイレクトするようにnginxを設定できます。このようにして、そのような些細なリクエストがアプリサーバーにヒットすることはありません。
マルチパートアップロード-Nginxはマルチパートアップロードの処理に適しています。 Nginxはすべてのリクエストを結合し、単一のファイルとしてプーマに送信します。
静的アセットの提供-静的アセットを提供することをお勧めします(/public/
Railsのエンドポイント)アプリサーバーを読み込まずにウェブサーバー経由で。
Nginxには、いくつかの基本的なDDoS保護が組み込まれています。
Webサーバーとアプリケーションサーバーには大きな違いがあります。 Nginx(Webサーバー)とPuma(アプリサーバー)は、アプリケーション内のリクエストを同時に処理します。
クライアントからの要求があるときはいつでも、それはnginxによって受信され、それからPumaであるアプリケーションサーバーに転送されます。
NginxをWebサーバーとして使用すると、複数のリクエストをより効率的に処理できます。マルチスレッドサーバーであるため、リクエストが複数のスレッドに分散され、アプリケーションがより高速になります。
ベンダントが述べたように、Webサーバーを使用して静的ページを提供できます。
Webアプリケーションに証明書を含める場合は、ここからhttpからhttpsへのリダイレクトを提供できます。これにより、httpsにリダイレクトした後でのみアプリサーバーにアクセスできます。
Pumaを使用する場合は、サーバーがリソースを効率的に使用していることを確認する必要がありますが、nginxを使用する場合は、サーバーがそれ自体で処理します。
あなたはより多くの情報を得ることができます ここ 。