トップ «前の日記(2007-03-27(Tue)) 最新 次の日記(2007-03-31(Sat))» 編集

ぽっぺん日記@karashi.org


2007-03-29(Thu) [長年日記]

_ www/rubygem-mongrel用daemontools runスクリプト

Railsを動かすためににwww/rubygem-mongrelにインストールしたところ、rc.dスクリプトが付属していなかったので、daemontoolsで管理させることにした。

以下、とりあえず書いてみたrunスクリプト。

#!/bin/sh
exec 2>&1
exec envdir ./env \
sh -c '
    exec \
    envuidgid www \
    mongrel_rails start \
        -e "${RAILS_ENV-development}" \
        -p "${PORT-3000}" -a "${IP-0.0.0.0}" \
        -n "${PROCS-2}" \
        -c "${ROOT}"
'

次はwww/rubygem-mongrel_clusterに挑戦したい。

_ Apache + SSL + mod_proxy_balancerのバックエンドでMongrelまたはlighttpdを動かす

フロントエンドでApache + SSL + mod_proxy_balancerを動かして、そのバックエンドで、mongrelなりlighttpdを動かすという構成は結構多いんじゃないかと思うんだが、そのような環境を手元で試していてハマったのでメモ。

ハマったところは、バックエンドのRailsで

redirect_to :action => 'list'

という感じでredirect_toを使っていると、Railsはhttpsで接続されているということは分からないので、httpにリダイレクトされてしまうという問題。

色々とググってみたところ、Mongrel and Rails behind Apache 2.2 and SSLに解決方法が書いてあった。

簡単に書くと、フロントエンドのApacheで

ProxyPass / balancer://rails/
ProxyPassReverse / balancer://rails/
<Proxy balancer://rails>
    RequestHeader set X_FORWARDED_PROTO 'https'
    BalancerMember http://192.168.0.1:3000
</Proxy>

ってな感じで、

RequestHeader set X_FORWARDED_PROTO 'https'

を書いてやればOKってことらしい。

試してみたら、本当に大丈夫だった。ビバ!

[]
本日のPingbacks(全0件)

トップ «前の日記(2007-03-27(Tue)) 最新 次の日記(2007-03-31(Sat))» 編集