【Rails】webrickからthinに変えてみた


RubyOnRails

最近、某サイトをRailsでシコシコ作ってやっと一段落しました。(そのせいでiOS開発が滞りまくりな・・)

で、ユーザ数が50人くらいの小規模なSNSな感じのサイトだったのでしばらくは我が家の自宅サーバで運用すればいいかーとおもってwebrickを80番で起動して使っていたのですがやはり「ちょと遅い・・?」な気がしたのでthinに変更してみました。

というわけでthinの勉強メモエントリです。


thinとは?

ちょっと記事が古いですが。
Thinはrubyの高速Webサーバ

けど、最近はunicornの方が色んな場面で早いんですってね。
完全に個人利用なのでどっちでもいいんですー っと思って適当にthinにしました。

インストール

これが驚き! (いや、常識なのかもしれないのであんまりこんな事大声で言えませんが)
webサーバっていうくらいですからApacheやnginxみたいにyumで落としてくる〜 とかソース落としてきてmake && make install とかやるんかと思っていました (*_*;

gen install thin
でいいんですって。 How fantastic!

今回のprojectは全部 vender/bundle の下に突っ込んでいたので、 Gemfileに いつもの如く以下の行を追加

gem 'thin'

そんでもってbundle install
なんと簡単な事でしょう。

使い方

基本的にはRAILS_ROOTディレクトリで、
thin start
で起動。とても簡単。 あとは thin -h でヘルプを見ると大体分かる寸法。

ただ、今回外部公開しようと思って -p 80 であげたらApacheとかと同様「おまえみたいなもんにサーバの80番をわたせるかボケェ」っておこられたので sudo で起動しました。

更に、シェルとか何かしらのバッチから起こされる事も鑑みてフルパスでsudo起動させておきたかったので which bundleで bundle exec 時のパスを確認。

cd RAILS_ROOT
sudo /home/#{me}/.rbenv/shims/bundle exec thin start -p 80 -d

これで起きたっぽいです。 そのままプロセスの確認をするとたんと上がってるので、ブラウザでチェックして表示できた。

ps aux | grep thin
root 22048 0.3 2.3 124492 93320 ? Sl 14:16 0:05 thin server (0.0.0.0:80)

その他 オプションとかとか

最後に、今後よく使いそうなオプション的なヤツを自分用メモに。

起動オプション start|stop|restart|config|install
この”install”ってなんだよ ってふと思うけど。 まぁ今回はいいや。

Listenするポート -p (–port)
この変はwebrickと同じですね。 デフォルトだとlocal:3000だそうです。 というわけで今回は -p 80 に。

実行モードの指定 -e (–enviroment)
ことば合ってるのだろうか。。 デフォだとやはりdevelopmentで動くようなので、 -e production に。

デーモンでヨロ -d (–daemonize)
今回は普通にthin起動したらすぐにお布団敷いて寝るので必須オプション。

設定はyamlの場合 -C (–config FILE)
起動オプション等をymlファイルに書いておいて読み込んでもらう場合。
これだと環境によってymlファイルを複数置いておけばなんか良いことありそう(?) 今回は使わなかったけどいつか使うかもしれないので記載。

まとめ

結構簡単なんですね。 もうApacheとかnginxとか使うのがどんどん億劫になっていきます。

で、webrickよりもパフォーマンスが変わったかな? と個人的に疑問だったのですが、リプレイスしてからすぐに友人から「改善されてるよ」との知らせが!
よかった(・∀・) いや、本当はapache benchかければいいじゃんて言われたらそれまでなんですが。。 おわり。

2014-07-28 | Posted in RailsNo Comments » 


関連記事

Comment





Comment



*