質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

6271閲覧

EC2にRuby on Rails製のアプリケーションをデプロイする際におけるnginx等のWebサーバの必要性がわかりません

yomigi

総合スコア43

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/10/14 18:29

大変無知な質問になってしまうことをはじめにおことわりさせていただきます。

タイトルが全てになってしまうのですが、なぜWebアプリケーションをec2などのサーバにデプロイする際はnginxが必要なのでしょうか?
=>puma+Railsのみの構成では問題があるのでしょうか。

ローカルではrails sでpumaを起動するだけで問題ないのに、わざわざnginxを噛ませる必要性がわかりません。

Railsアプリケーションを実行する環境作りの手順メモ

上記は私が参考にしたQiitaの記事(リンクの貼り方が規約的に問題ならばご指摘ください)なのですが、
この記事の(構成例1)では実際にnginxを用いないデプロイ方法について記載されております。
=>実際に私の方でもこの方法を試しまして、うまくアプリケーションを起動させることができました。

使用しなくてもWebアプリケーション(この場合はRails製のアプリケーション)を起動させることはできるにもかかわらず、
それでもnginxの使用が当然のような扱いになっていることをみると、
何かしらnginxが必要になる理由があると考えているのですが、
そちらに言及している記事を見つけることができず・・

どなたか、nginxを使う理由(必要性?)、及び仮に無くても一応は問題なく動く理由について教えていただけませんでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/10/15 00:11 編集

双方の特性などは調べてみたのでしょうか。 いずれもWebサーバなので、双方の利点を活かしたいなら連携させればいいし 片方だけでも動かないことはなく必要性を感じなければ使わなければいいだけにように思います。 おそらく調べたら理由も利点も出てくるのではと思います。
guest

回答1

0

ベストアンサー

Puma(あるいはUnicorn)とNginxを併用する理由については、同様の疑問がやはりたくさんあるようで調べると多数出てきますね。
自分も同様の疑問を持ったことがあるのでそういうことを感じるのは自然なことなんだと思います。

Teratail内ではこのあたり
[Rails] nginx + unicorn を使う意味

この辺はもう少し詳しいかも
なぜRailsのWebアプリにunicornとnginxを使うのか。必要性と棲み分け

※自分はRailsとそのエコシステムについてそこまで詳しくないので、もっと詳しい方からご指摘があるならお待ちしています。

ざっくりいうと、IOの仕組みが違うためその部分はnginxに任せたほうが高速になるから、ということだと思います。
別になくても動くには動くと思います。
そういう意味だと動作自体には必要ではないが、実運用では事実上ほぼ必須になっていると言えるかなと。

では、ELBの配下に置いたEC2にもnginxは必要なのか、という点も自分は長く疑問に思っていたのですが、↑のサイトの説明を考慮するとnginxは単にリバースプロキシとしての側面だけじゃなくてIOの仕組みの面でnginxの利点を使っているということなので、やはり使ったほうがいいのでしょう。

他のフレームワークの場合はもしかしたら使わなくてもいいようなものがあるかもしれませんが、それはちょっとわかりません。

投稿2020/10/15 01:42

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問