LoginSignup
8
4

More than 3 years have passed since last update.

Rails Webサーバーとアプリケーションサーバー

Last updated at Posted at 2020-11-14

はじめに

普段何気なく使っていたコマンド「rails s」。このコマンドにより、何がどう動いていたのか改めて認識したので、書き記します。

補足
rails sはローカルサーバーを立ち上げるコマンドです。

目次

1.Webサーバーとアプリケーションサーバー
2.ローカル環境
3.本番環境

1.Webサーバーとアプリケーションサーバー

処理の負荷を分散する(高速処理)ため、サーバーは機能ごとに分業されている。

Webサーバー
クライアントサイドからのリクエストを全て受ける。リクエストの内容が静的(HTMLやCSS)な場合、Webサーバーがブラウザ(クライアント)へレスポンスを返す。リクエストの内容が動的(データベースから情報を検索する等)な場合、アプリケーションサーバーへリクエストを渡す。

アプリケーションサーバー
Webサーバーから渡されたリクエストを受け取り、対応するコントローラーのアクションを実行する。その後、処理結果をWebサーバーに返す。

2.ローカル環境

ターミナルでrails s と入力するとサーバーが立ち上がる。そのときターミナルにはpumaが表示されている。これはRails用のアプリケーションサーバーであり、Webサーバーとの分業化されていない。

ターミナル
=> Booting Puma
=> Rails 6.0.3.4 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.5-p114), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

3.本番環境

本番環境において、Webサーバーとアプリケーションサーバーを分業化する。理由は先述した通り、アクセスが集中する等のサーバー負荷対策のためである。Nginx(Webサーバー)やUnicorn(アプリケーションサーバー)等を組み合わせ、本番環境を構築する。

参考ページ
なぜrailsの本番環境ではUnicorn,Nginxを使うのか?  ~ Rack,Unicorn,Nginxの連携について ~【Ruby On Railsでwebサービス運営】

以上

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4