はじめに
Sinatraで作成したアプリをHerokuにデプロイする際に、config.ruがないとダメというエラーが発生。
そこでconfig.ruを作成し、色々記述したところ問題なく動作した。
そもそもconfig.ruって何をしてるのか疑問に思い備忘録として残すことにした。
config.ruのruって何
rackupの略らしい。
rackupとは
Rackというライブラリ(gem)が提供するコマンド。
Rackとは
WebサーバーとRubyやRuby製フレームワーク(RailsやSinatraなど)のインターフェース。
これがないとWebサーバーからのリクエストがアプリに届かない。
WebサーバーとRailsなどのフレームワークはお互い異なる言語で会話しているので、Webサーバーからお願いされてもフレームワーク側は何を言われているのか分からない状態。
Rackが間に挟まることによって、双方の言語を翻訳してリクエストとレスポンスのやりとりをできるようにしてくれるイメージ。
config.ru
runにアプリのオブジェクトを渡すことによってRackが機能する。
まとめ
RackはWebサーバーとアプリケーションサーバーの橋渡し。
デプロイしたときにエラーが出たのは、Webサーバーのリクエストにアプリケーションサーバーが答えられなかったため。