Windows-7
在 Windows 7 上使用身份驗證的 Apache2 反向代理?
我正在嘗試將 Apache2 反向代理從我的筆記型電腦(Windows 7、Apache 2.2.17)設置到我們網路上的 Nexus 伺服器(Windows Server 2003)。這只是在我們擁有的 Internet 可見伺服器上進行實際設置之前的測試。我可以很好地設置代理本身並代理 Nexus。但是當我嘗試對代理應用身份驗證時,就會出現問題。我想監聽 8090 埠。
以下是我的 httpd.conf 文件中的相關位:
Listen 8090 ProxyRequests Off ProxyPreserveHost On <Proxy /nexus> Order deny,allow Allow from all </Proxy> <Location /nexus> Order deny,allow Allow from all ProxyPass http://secret.mydomain.com:8082/nexus ProxyPassReverse http://secret.mydomain.com:8082/nexus AuthType Basic AuthName "Nexus" AuthBasicProvider file AuthUserFile c:\tmp\users Require valid-user </Location>
如果我註釋掉所有的 Auth* 指令,那麼對 Nexus 的代理可以使用http://localhost:8090/nexus/content/groups/central/之類的 URL但一旦我重新添加這些 Auth* 指令,我就會得到登錄框,輸入有效憑據,然後再次提示。然後再次。然後再次。我注意到的一件事是,第一次出現憑據對話框時,領域顯示為“Nexus”(正如我在 httpd.conf 中所擁有的那樣)。但在所有後續提示中,它顯示為“Sonatype Nexus Repository Manager”,我認為它來自 Nexus 伺服器本身,即使它不需要身份驗證。
另外,我知道密碼文件和使用者/密碼很好,因為如果我只為本地目錄使用它們設置身份驗證,它就可以正常工作。
我發現了各種關於反向代理和身份驗證的部落格文章,但我似乎無法讓它們一起工作。我已經嘗試了很多事情,但我認為這是最簡單的問題。
有人看到我的配置有什麼明顯錯誤嗎?或者它有什麼微妙的錯誤?
您的使用者身份驗證正在傳遞到後端,您可以嘗試使用取消設置身份驗證標頭
RequestHeader unset Authorization