我正在设置一个 Jenkins 服务器,在 Apache 后面的 Tomcat 下运行。我正在使用 SNI 使用带有 SSL 的虚拟主机,所以我可以在https://jenkins.example.com访问它,并在http://www.example.com上提供其他服务。
我已经启动并运行了,但是当我单击“管理 Jenkins”时,它告诉我您的反向代理设置似乎已损坏。
请注意,我使用的是自签名 SSL 证书,并且 jenkins.example.com 不是默认的虚拟主机。
相关的 apache 配置如下所示:
<VirtualHost *:80>
ServerName jenkins.example.com
Redirect / https://jenkins.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName jenkins.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/jenkins.example.com.crt
SSLCertificateKeyFile /etc/ssl/private/jenkins.example.com.key
<Location />
AuthType Digest
AuthName "Jenkins"
AuthUserFile "/etc/htpasswords"
Require valid-user
</Location>
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / https://jenkins.example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如果我做:
curl …Run Code Online (Sandbox Code Playgroud) 我有一个系统(“主机”),使用 LXC(即“来宾”)运行多个容器。我已经在来宾中安装了 Jenkins,它们似乎按预期工作,只是它们不响应请求。(我之前已经成功安装过几次 Jenkins,包括 LXC。)在这种情况下,观察到的问题是内置 Jenkins Web 服务器 (Jetty) 没有响应 HTTP 请求,即使这些请求是从 Jenkins 内部发出的。它运行的非常 LXC 来宾,即指向localhost.
我已经努力解决这个问题好几天了,但没有成功。
这是尝试从以下位置联系 Jenkins Web 服务器时得到的结果localhost:
root@base:~# curl -vI http://localhost:8080/jenkins/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8080 (#0)
> HEAD /jenkins/ HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.58.0
> Accept: */*
>
Run Code Online (Sandbox Code Playgroud)
在工作设置中,您应该收到 HTTP-403,因为您尚未经过身份验证,并且回复时间不会超过一两秒,但即使几个小时后,也没有响应。Jenkins 日志文件也没有报告任何错误。
我需要帮助来找出根本原因并解决此问题,以便 Jenkins 安装按预期工作并变得可访问。
有关于寻找什么/在哪里来找出并解决这个问题的任何指示?
以下是我已经研究过的一些事情:
/etc/default/jenkins与我的其他工作设置类似,并且进行了最小的更改(例如仅绑定到本地主机和前缀)。