0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

ミドルウェア(unicorn + nginx)周辺のメモ

記事を書く目的

Railsでつくったアプリをデプロイしたときの構成として、ミドルウェアにNginxとUnicornを使用しました。
なぜこれらを本番環境で使用するのか調べていて、まとめたいなと思ったのでメモ。

ミドルウェア

osとアプリケーションの間に入って働くプログラムのこと。

  • Webサーバー(Nginx)
  • アプリケーションサーバー(Unicorn)

のこと。

こちらの記事のとおりに構成を実施。
(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで - Qiita

Webサーバー, アプリケーションサーバーの役割

  • Webサーバー(Nginx)
    静的コンテンツを返す役割を持つもの。
    誰がみても同じ内容のもの。
    誰かの記事を見るなど、誰がみてもその人の記事の内容は同じなのでそれを表示させるのには、Webサーバーだけで十分。

  • アプリケーションサーバー(Unicorn)
    動的コンテンツを返す役割を持つもの。
    各ユーザーにより、処理が異なるもの。
    ログインだったり、記事を投稿する場合だったりデータベースとのやり取りが必要なもの。

RailsにはPumaがある

Rails5からはWebサーバーの役割をもつPumaが標準装備されているとのこと。
ということはPuma + Nginx でもいいのではないか?と思っていたらPumaとUnicornを比較した記事がありました。
↓↓
Pumaの本当の力を引き出す - Qiita

結果的にデフォルトのPumaは貧弱なため、Unicornを使った方が処理がスムーズなるけど、ポートフォリオくらいならPumaでも問題はないのかなと。

つまり

デフォルトのPumaは貧弱なので、Unicornを使う。
Unicornを使う場合、ドキュメントではNginxと組み合わせることを推奨しているため、Unicornを選んだ場合、webサーバも自然とNginxになる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?