我的jenkins在我的服务器上运行tomcat:
http://davez0r.com:8080/jenkins
我希望apache将子域指向此:
http://ci.davez0r.com
有指示:
所以我用我的提供者设置了子域,然后在httpd.conf中添加了一个虚拟主机:
<VirtualHost *:80>
ServerName ci.davez0r.com
ProxyPass / http://localhost:8080/jenkins
ProxyPassReverse / http://localhost:8080/jenkins
ProxyRequests Off
<Proxy http://localhost:8080/jenkins*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
这低于我用来重写mediawiki网址的其他虚拟主机条目。
然后我重新启动了所有内容。
现在的问题是,当我转到所需的网址时,我会被重定向到:
http://ci.davez0r.com/jenkins
此时我看到一个空白页面。
我不知道谁在做重定向。是Jenkins,Apache,Tomcat ......?
版本:
答案 0 :(得分:2)
这对我有用:
<VirtualHost *:80>
ServerName ci.davez0r.com
ProxyPass / http://localhost:8080/jenkins/
ProxyPassReverse / http://localhost:8080/jenkins/
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080/jenkins/*>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine on
RewriteRule ^/jenkins/(.+) http://%{HTTP_HOST}/$1
</VirtualHost>
在代理URL之后添加尾部斜杠会导致无限循环。然后在ProxyPass URL工作之后添加尾部斜杠,但所有静态内容都有错误的URL。
所以我添加了一个重写规则来删除显示谁知道原因的额外/jenkins/
目录。
答案 1 :(得分:0)
Tomcat正在生成重定向 - 就其而言 - 是正确的URL。
有几种选择。到目前为止,最简单的方法是将Jenkins部署为Tomcat上的ROOT Web应用程序。
更棘手的选择是弄清楚如何传回重定向并在httpd中添加适当的配置来更改它。要解决您可能会遇到的所有问题,您可能需要mod_headers和mod_substitute的某些组合。