让 Jenkins 使用 apache2 后面没有 8080 端口的子域

让 Jenkins 使用 apache2 后面没有 8080 端口的子域

我无法重定向我的 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=8080JENKINS_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

相关内容