我无法重定向我的 Jenkins 来使用我的子域(build.core-network.us
)并且不需要在其后面附加 :8080 端口。
我在使用 Debian Wheezy。
我使用 Apache(proxy
并且proxy_http
已安装),这是我的/etc/apache2/sites-available/build.core-network.us
文件:
<VirtualHost *:80>
ServerName build.core-network.us:80
ServerAlias www.build.core-network.us
ServerAdmin [email protected]
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyRequests Off
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
/etc/default/jenkins
我确信--httpListenAddress=127.0.0.1 --httpPort=8080
JENKINS_ARGS
当然,build.core-network.us 具有正确的 DNS 条目(当我:8080
向其添加端口时它可以正常工作)。
我发现了另外 4 个类似的帖子,其中有 4 种不同的 VirtualHost 推荐,但它们要么不适合我,要么我没有正确使用它们。
更新 1: 我发现错误error.log
:
[Fri Sep 26 17:33:59 2014] [notice] SIGUSR1 received. Doing graceful restart
[Fri Sep 26 17:33:59 2014] [notice] Apache/2.2.22 (Debian) configured -- resuming normal operations
[Fri Sep 26 17:33:59 2014] [error] proxy: ap_get_scoreboard_lb(0) failed in child 11990 for worker proxy:reverse
[Fri Sep 26 17:33:59 2014] [error] proxy: ap_get_scoreboard_lb(0) failed in child 11991 for worker proxy:reverse
更新 2:我sudo /etc/init.d/apache2 stop
这样做了start
,但没有帮助。
答案1
我认为错误在这里:
ServerName build.core-network.us:80
删除:80
,它不是Host:
标头的一部分。发生的情况是,它不符合您的请求,并且您的系统正在转到另一个虚拟主机(如果没有明确匹配,则转到第一个加载的虚拟主机)。
www.build.core-network.us
现在应该可以工作了,您也可以使用它来测试。
此外,您不需要该<Proxy>
部分,该部分仅用于正向代理。
在大多数情况下ProxyRequests
已经关闭了,所以这可能是多余的,但并没有什么坏处。
答案2
您忘记了应用程序路径。
默认为 /jenkins。
例如。
Proxypass /jenkins http://localhost:8080/jenkins