Windows-7

在 Windows 7 上使用身份驗證的 Apache2 反向代理?

  • February 26, 2011

我正在嘗試將 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

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