tracとrails(mongrel_cluster+mod_proxy)をサブディレクトリな感じでApacheを入り口にdeployした時の
tracはcgi動作ですので簡単。
httpd.confとmongrel_cluster.ymlとか参考リンクとか
分からんところは気合いで対処した。ひどい物だとおもう。
colinux+Fedora
railsのアプリルートは/var/www/rails/to2
確認
適宜確認していくこと
アプリとしては
railsがrailsrootからscript/serverで動く。
railsがprefix付きでmongrel_cluster動作する(http://サーバー:3000とか/railsで動く)。
tailでrailsとhttpdのログを見ながらproxyが流れてるか。
流れてたら動作してるでしょ?って話でした。
サービスとしては
/etc/init.d/mongrel_clusterごにょ start|stop|restart あたりは動きますか
fedoraなのでchkconfig --addとか出来ますか?(自分で作った起動スクリプトは「たいおうしてねぇよ!」とおこら田ので。)
1.mongrel_clusterまで
gemでrailsアプリが動かす。Autopagerizeとかもいれとく。適当にやって。
mongrel_cluster関係は
「mongrel_cluster - バリケンのRuby日記 - Rubyist」
でOK。
2.httpd.conf部分
ここは単純かも
#railsサブディレクトリ ProxyPreserveHost Off ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /rails balancer://rails ProxyPassReverse /rails balancer://rails #railsをサブディレクトリで運用するの図 <Proxy balancer://rails> BalancerMember http://127.0.0.1:3000/rails loadfactor=10 BalancerMember http://127.0.0.1:3001/rails loadfactor=10 BalancerMember http://127.0.0.1:3002/rails loadfactor=10 BalancerMember http://127.0.0.1:3003/rails loadfactor=10 BalancerMember http://127.0.0.1:3004/rails loadfactor=10 </Proxy> #trac Alias /trac "/usr/share/trac/htdocs/" ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi <Location "/trac"> #ここだけtracルートに変更ね SetEnv TRAC_ENV "/var/repos2/trac" </Location>
3.サブディレクトリ構成でrailsに設定しなきゃいけないこと
railsroot/config/mongrel_cluster.yml
log_file: /var/www/rails/to2/log/mongrel.log port: 3000 pid_file: /var/run/mongrel/to2.pid servers: 5 environment: production prefix: /rails
prefix句がいい感じで必要です。
4.mongrel_clusterをサービス運用するための/etc/init.d/....以降
mongrrel_cluster_ctrってので操作してるみたいだけどそんなアプリケーションなのかスクリプトなのか。。知りません。だから気合いで対処した。
#!/bin/bash CONF_DIR=/etc/mongrel_cluster/to2 #上記のサイトに従ってここにシンボリックリンク作った。 USER=root RETVAL=0 # Gracefully exit if the controller is missing. which mongrel_cluster_ctl >/dev/null || exit 0 # Go no further if config directory is missing. [ -d "$CONF_DIR" ] || exit 0 case "$1" in start) #気合い部分 cd /var/www/rails/to2 mongrel_rails cluster::start RETVAL=$? ;; stop) cd /var/www/rails/to2 mongrel_rails cluster::start RETVAL=$? ;; restart) #投げやりになってる部分。動くからいいや。 cd /var/www/rails/to2 mongrel_rails cluster::stop mongrel_rails cluster::start RETVAL=$? ;; status) #ここはびた一文動作しないけど気にしない mongrel_cluster_ctl status -c $CONF_DIR RETVAL=$? ;; *) echo "Usage: mongrel_cluster {start|stop|restart|status}" exit 1 ;; esac exit $RETVAL
この後
SSL対応とかどうするんだろ?ディレクティブをうまく使ってごにょごにょするのかなぁ?