toolboxsearchをrails3.1.0に対応

overview

The Ruby Toolbox Search
Rails3.1.0に対応しています。


ついでに下記作業も実施。
・サーバーをlinodeからsakuraに移行
・tkの独自ドメインを取得してみました
・実行環境をapache + passenger からnginx + unicornに変更



移行前(じきに消します)
http://www.rochefort/toolbox_search/

移行後
http://www.toolboxsearch.tk/


Rails3.1.0への移行

基本は↓です。
Rails3.1.0へのupgrade方法 - うんたらかんたら日記


ぼちぼち、新機能は触って行きたいと思います。


linodeからsakuraへの移行

Linode - Xen VPS Hosting
コンソールが充実していたり、初期化スクリプトも選択できたり、iPhoneアプリまであって
充実しているのですが、以下の理由から思い切って乗り換えてみました。


・レイテンシが気になる(やっぱ国内に比べると遅い)
・若干sakuraの方が安い


コンソール機能はしょぼいですが、レイテンシが個人的にはストレスだったので
今のところ不満は無いです。


余談ですが、sakuraがCentOSしか対応していないのを見ると、日本ではdebian系よりredhat系の方が主流なんでしょうか。


tkドメイン取得

Dot TK - Renaming The Internet
ある日突然使えなくなっても文句言えない感じですが
無料の割には使えそうな感じです。
DNSの反映が、1時間くらい掛かりました。


そもそも、The Ruby Toolbox Searchのコンテンツが
他人のフンドシ(The Ruby Toolbox - Know your options!)な感じなので
仮に急に使えなくなってもいいかなと。


nginx + unicorn

unicorn使うより、passenger使った方が楽チンな印象です。
nginx + unicornをタダ使ってみたかっただけです。


nginxはとても良さげですが
unicornは、passengerと比べると運用が面倒な印象です。
tuningなどは、今後やっていきます。


はまったコト

サブディレクトリでの複数アプリ起動

tkドメイン取得するまでは
サブディレクトリ切って、複数アプリを実行する方式にしようと思っていました。
(専用ドメインとなったので、今はこの方式ではないです)


んで、passengerのように簡単にできるかと思っていましたが、
あんまり情報が無く(割と需要のある方式だと思うんだけどなぁ)、随分はまりました。



解決方法はこちらに記載されています。
ありがとうございます。
nginx+Unicornでサブディレクトリでアプリを動かす | ひげろぐ


やり方は、railsのpublicディレクトリに対してsymblic linkを
nginxのrootディレクトリに張ります。
これはpassengerと同じです。


あとは、サブディレクトリ用にlocationを切ってrailsに流すという設定を入れます。
最後にrails(rack)側でRAILS_RELATIVE_URL_ROOTをマップするという方法なのですが
rails3からrelative_url_rootがdeprecateとなったため、
ここでいろいろ試してみましたが、結果、参考URLのやり方でしか、うまくいきませんでした。


ちなみに、config.ru消す方法も紹介されていますが
これはunicorn_railsで起動した場合です。
あと、pathオプションでRAILS_RELATIVE_URL_ROOTが自動で設定されるというのも。


ややこしいのですが、unicorn/unicorn_railsというコマンドがあり
せっかくなので、rackアプリ(rails3)用のunicornコマンドで起動してみています。