Apache-2.2

在反向代理後面設置 apache 基本身份驗證

  • July 9, 2011

我很難通過機器 A 上的反向代理設置將 htdigest 身份驗證傳遞給需要身份驗證的機器 B。

我正在建立一個家庭開發網路,其中包含所有基本工具(Trac、hudson、git、svn 等)。在完成大部分設置並執行之後,我希望允許從外部訪問它們. 出於管理目的,每個服務都在其自己的 VM 上執行。我已經設置了一個反向代理,它是所有埠 80 請求的目標,並根據路徑將它們重定向到正確的伺服器。

問題表現如下。trac 頁面 /login 需要憑據,然後重定向到首頁。第一次訪問它時,它會要求您提供憑據。但是當它把你重定向到首頁時,你並沒有登錄,任何再次訪問登錄頁面的嘗試都會立即重定向到首頁。

我的 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

希望這對將來的人有所幫助

引用自:https://serverfault.com/questions/288517