Apache-2.2
在反向代理後面設置 apache 基本身份驗證
我很難通過機器 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
希望這對將來的人有所幫助