我想为在Ubuntu服务器12.04.1上运行的Apache的反向代理站点添加基本身份验证。
该Web应用程序是在Java EE容器上运行的Jenkins。
我在 httpd.conf中 添加了以下配置,
ProxyPass /jenkins/ http://localhost:8080/jenkins/¬ ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/¬ ProxyRequests Off¬ ProxyPreserveHost On¬ ¬ <Proxy http://localhost:8080/jenkins*>¬ Order deny,allow¬ Deny from all¬ ▸ AllowOverride AuthConfig¬ ▸ AuthType Basic¬ AuthName "jenkins"¬ ▸ AuthBasicProvider file¬ AuthUserFile /etc/apache2/passfile¬ ▸ Require valid-user¬ ▸ Satisfy any¬ </Proxy>
当我使用错误的密码或不存在的用户名进行身份验证时,我可以在apache的 error.log 中找到以下消息,
[2012年10月27日星期六17:51:59] [错误] [客户端222.128.175.95]用户凯恩:“ / jenkins /”的身份验证失败:密码不匹配[2012年10月27日17:52:04星期六] [错误] [客户端222.128.175.95]找不到用户Aladdin:/ jenkins /
在 passfile中 使用正确的用户名和密码时,不会记录任何消息。尽管我在网络浏览器中输入了正确的用户名和密码,但身份验证对话框将再次提示。我还在apache的 access.log 中找到以下输出,
222.128.175.95-kane [27 / Oct / 2012:17:39:54 +0800]“ GET / jenkins / HTTP / 1.1” 401794“-”“ Mozilla / 5.0(Macintosh; Intel Mac OS X 10_8_2)AppleWebKit / 537.4 (KHTML,例如Gecko)Chrome / 22.0.1229.94 Safari / 537.4“
有人知道如何使其工作吗?谢谢。
您是否还在Jenkins上启用了身份验证?有关此设置的说明,请参见以下链接:https : //wiki.jenkins- ci.org/display/JENKINS/Apache+frontend+for+security。
尤其要注意以下行:您不能同时在Jenkins和Apache中启用安全性,因为两者将发生冲突,从而导致出现无限的提示。不幸的是,您必须选择一个。
另请参阅此链接,以获取有关Apache + Jenkins设置的更一般性讨论:https : //wiki.jenkins- ci.org/display/JENKINS/Running+Jenkins+behind+Apache