Мне трудно пройти аутентификацию htdigest через настройку обратного прокси на машине A на машину B, которая требует аутентификации.
Я настраиваю домашнюю сеть разработки со всеми основными инструментами (Trac, hudson, git, svn и т. Д.). После настройки и запуска большинства из них я хочу разрешить доступ к ним извне. . В целях управления каждая служба работает на своей виртуальной машине. Я установил обратный прокси-сервер, который является целью для всех запросов порта 80, и в зависимости от пути перенаправляет их на правильный сервер.
Проблема ведет себя следующим образом. Для страницы отслеживания / входа требуются учетные данные, а затем выполняется перенаправление на домашнюю страницу. При первом доступе он запрашивает учетные данные. Но когда он перенаправляет вас на домашнюю страницу, вы не вошли в систему, и любая попытка снова получить доступ к странице входа сразу же перенаправляет на домашнюю страницу.
Моя конфигурация apache ниже:
ProxyPass /trac http://server1/trac
ProxyPassReverse /trac http://server1/trac
<Proxy http://server1/trac>
Order deny,allow
Allow from all
</Proxy>
#<ProxyMatch http://server1/trac/[^/]+/login>
# LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so
# SetEnv proxy-chain-auth On
# AuthType Digest
# AuthName "trac"
# AuthDigestDomain /trac
# AuthUserFile /etc/apache2/trac.htdigest
# Require valid-user
#</ProxyMatch>
РЕДАКТИРОВАТЬ: Дальнейшее чтение указывает на то, что trac полагается на файлы cookie для этого типа аутентификации пользователя, поэтому я предполагаю, что мне нужно каким-то образом проксировать файлы cookie.
Я определил, что проблема в том, что я не включил директиву ProxyPassReverseCookieDomain:
ProxyPassReverseCookieDomain external_addr server1
Надеюсь, это поможет кому-то в будущем