目標: MongrelsでRailsアプリケーションを実行し、基本HTTP認証を実行した後にApacheを介したアクセスを許可する
問題: Rails内から提供されたユーザー名を読み取る
Apache:
<Proxy balancer://mongrel_cluster>
BalancerMember http://127.0.0.1:4001
# ...
Order deny,allow
Deny from all
AuthType Basic
AuthName "<realm>"
AuthUserFile "<users-file>"
AuthGroupFile "<groups-file>"
Require group <group>
Satisfy Any
</Proxy>
RewriteEngine On
# ...
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
これは問題なく機能します。Apacheはユーザーに認証を強制し、成功した場合はRailsに転送します。静的ファイルなどを処理し、それらの認証をトリガーするために、数行を省略しました。
Railsの観点から見た環境変数には、通常のエントリに加えて、、が含まれていHTTP_X_FORWARDED_HOST
ます。カスタム環境変数を書き換えルールに追加して渡すことができませんでした:HTTP_X_FORWARDED_SERVER
HTTP_X_FORWARDED_FOR
RewriteRule ... [P,QSA,L,E=foo:bar]
何かご意見は?