本番開始
今日から「カウンセリング予約システム」の本番をスタートしました。
本番環境は、apache1.3 + mod_proxy + Mongrelにしました。
Mongrelのインストールはgem一発。
$ sudo gem install mongrel
APPROOTで、"mongrel_rails start"というコマンドを打てば、script/serverと同じようにデバッグ環境で起動します。本番モードにするには、
$ mongrel_rails start -eproduction -pNNNN -a127.0.0.1 start
現在は、screen上でこれを起動して様子を見ながら運用していますが、-d オプションをつければデーモンになるようです。しばらくしたら、その形の運用にするつもりです。
apacheの設定は、前から動いていたhttpd.confのSSLの設定部分に下記を追加。
<VirtualHost www.xxxxx.jp:443> ....... ProxyRequests on <LocationMatch "^[^/]"> Deny from all </LocationMatch> ProxyPass /XXXX/ http://localhost:NNNN/ ProxyPassReverse /XXXX/ http://localhost:NNNN/ </VirtualHost>
XXXXはパス、NNNNはポート番号です。こう設定すると、https://www.xxxxx.jp/XXXX/がRailsのルートに転送されます。
それで、これは、もろにid:cuzicさん作成の、Relative Path Pluginが必要になるケースですね。
- Relative Path Plugin in Ruby on Rails
- プログラミングは素晴らしい - Rails の動作環境と Location について
- Rubyカンファレンスの発表資料資料(PDF)
これが無いと、https://www.xxxxx.jp/XXXX/login に行くべき所で、https://www.xxxxx.jp/loginに飛んでエラーになります。
上記のページ通りの設定で、一発でうまく行きました。Rubyカンファレンスでこれの存在を知ったのですが、即、使わせていただきました。これは便利だ。id:cuzicさん、ありがとうございます。
なお、全てSSL経由っていうのは、普通のシステムだと負荷的に問題になるかもしれませんが、このシステムはアクセス数がすごく少ない(というよりヘタしたら皆無)なので、全く問題ありません。