Edited at

なぜユニコーンは必要なのか


この記事はOIC ITCreate Club Advent Calendar 2018の1日目の記事です。

こないだ

僕「なんでunicornは必要なん?nginxとrailsだけじゃあかんの?(幼女風」

と疑問をもち質問をしたところ

「一言では説明できない」

「なくてもいい」

「ラプラスの箱を探すため」

と幼女な僕にはわからなかったため、幼女でもわかるように自分で調べて解説してみようと思います。


まずunicornとは

Unicorn is a Rack HTTP server to serve Ruby web applications on UNIX environment. from wiki

Unicornは、UNIX環境でRuby Webアプリケーションを提供するRack HTTPサーバです。


Rack HTTPサーバとは

Rack is the magic that lets any of these app servers run your Rails app. (Or Sinatra app, or Padrino app, or…) from Justin Weissさんの記事 A Web Server vs. an App Server

Rackは魔法です。Rackを使えばどのアプリケーションサーバーであってもあなたのRailsアプリケーションを動かすことができます。(Railsに限らず、SinatraやPadrinoであっても同じです)


考察

webサーバを置いてリクエストを捌くのが主流になっている。

rubyには多数のwebアプリフレームワークがあり、それら一つ一つをwebサーバに対応するとなるとwebサーバ側もwebアプリフレームワーク側も大変。

だったら中間者を置こう。 => Rack誕生

みんなRackと話せたらいいよね?

unicorn「Rackをよりよくしてやったぞ」 => unicorn誕生

多分こんな感じ、みんなハッピー


結論

unicorn is magic.

hide is youjo.

q.e.d


知見

Rackから静的コンテンツ返せるのか...どう使うんや?


参考リンク様

Unicorn_(web_server) wiki

Rackとは何か

第23回 Rackとは何か(1)Rackの生まれた背景

Rack 実践 (Rack-based Application)

webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません

ApacheとNginxとPassengerとUnicornの違い【すごい初心者向け】

5分でわかるRack

Unicorn!

defunkt/unicorn