いまいち理解できていない言葉やツール、システムについて調べています。
今回はRack、Unicorn、Pumaなどについて調べたので、メモとして残しておきます。
Rackとは?
- Rackとはアプリケーションサーバーである。
- Rubyのフレームワークを繋ぐためのアプリケーションサーバーである。
- Rubyのフレームワークとはすなわち、Ruby on RailsやSinatraの事である。
また、Rackについてこちらの説明がしっくりきて分かりやすかったです。
Rackというアプリケーションサーバーという土台があり、
その上にRuby on RailsやSinatraが乗っていると思ってください。
概念的にはRack = Ruby on Railsと思っていただいて構いません。
引用: https://autovice.jp/articles/146
Unicornとは?
UnicornとはRackアプリケーション用のWebサーバーです。
引用: https://autovice.jp/articles/146
Pumaとは?
- Pumaも、Webサーバーである。
- 「ピューマ」と読む
- RailsでWebアプリケーションを作成する際に利用する。
- Gemfileに記述してインストールする
RubyのフレームワークはRailsだけじゃない
- Rubyを使った開発に使用するフレームワークは、Ruby on Railsだけではない。
- RubyのフレームワークとしてSinatraというものもある。
なぜ Webサーバーが複数必要なの?
UnicornなどのRack専用のWebサーバーの弱点を補うのがNginxです。
Nginxは低速クライアントをバッファリングします。
NginxとUnicornの間の接続は非常に高速なため、
Unicornが低速なクライアントのリクエストを受信することがなくなります。
引用:https://autovice.jp/articles/146
Webサーバーとアプリケーションサーバーの違い
Webサーバーとアプリケーションサーバーの違いとは?
Webサーバーが単にWebサイトに含まれるHTMLページ、画像ファイル、動画ファイルなどの静的コンテンツをデリバリするのに対し、
アプリケーションサーバーは動的コンテンツを生成してユーザーのWebブラウザにデリバリします。
引用: https://www.nginx.co.jp/learn/app-server/
最後に
全体像を把握する事で、開発に対する理解が深まると思います。
まだまだ未熟ですが、これからもキャッチアップしていきます。
pumaのことを「プーマ」と呼んでいましたwww
参考記事