我试图从我的笔记本电脑(Windows 7,Apache 2.2.17)到我们networking上的Nexus服务器(Windows Server 2003)设置一个Apache2反向代理。 这只是一个testing,然后在我们拥有的Internet可见服务器上进行实际设置。 我可以得到代理本身设置和代理Nexus美丽。 但是,当我尝试应用身份validation到代理,那是什么时候出事了。 我想听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指令,login框,input有效的凭据,然后再次提示。 然后再次。 然后再次。 我注意到的一件事是,凭证对话框第一次出现时,领域显示为“Nexus”(就像我在httpd.conf中)。 但是,在所有后续的提示中,它显示为“Sonatype Nexus Repository Manager”,我假设它来自Nexus服务器本身,即使它不需要authentication。
另外,我知道密码文件和用户/密码是好的,因为如果我使用他们只为本地目录设置身份validation,它工作正常。
我发现了关于反向代理和关于authentication的各种博客文章,但我似乎无法让他们一起工作。 我已经尝试了很多东西,但我认为这是最简单的问题。
有没有人看到任何公然错误的configuration? 或者有什么微妙的错误呢?
您的用户身份validation正在传递到后端,您可以尝试取消设置身份validation标头
RequestHeader unset Authorization