Цель: запустить приложение Rails на Mongrels, разрешив доступ через Apache после выполнения базовой HTTP-аутентификации.
Проблема: чтение предоставленного имени пользователя из Rails
Апач:
<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]
Есть предположения?