Я установил 2 разные версии Jenkins на одной и той же ОС Windows 2012 R2. Jenkins v1.590 работает за веб-сервером Apache Tomcat, а Jenkins 2.164 работает как служба Windows. Оба экземпляра Jenkins доступны через HTTPS.
Для этого я запускаю Nginx в качестве обратного прокси-сервера, который перенаправляет все запросы на https://jenkins.company.com/jenkins на сервер Tomcat и https://jenkins2.company.com на службу Windows Jenkins 2.164.
Все работает хорошо, КРОМЕ необычного поведения на Jenkins v1.590. Проблема, с которой я сталкиваюсь, заключается в том, что при доступе к некоторым ссылкам в разделе «Управление Jenkins» они перенаправляют на localhost.
Вот ссылки, которые отлично работают:
Тогда есть ссылки, которые НЕ работают:
и многие другие.
Я все равно могу получить эти ссылки, если скопирую в новое окно и добавлю / в конце, например: https://jenkins.company.com/jenkins/configureSecurity/ работает нормально.
Я не уверен, почему я получаю эти расхождения в Jenkins v1.590. Хочу отметить, что я сделал это изменение совсем недавно, и до установки Nginx все ссылки работали нормально.
Ниже приведены мои конфиги:
Nginx:
upstream tomcat_server {
# Tomcat is listening on default 8080 port
server 127.0.0.1:8080 fail_timeout=0;
}
server {
listen 443 ssl;
server_name jenkins.company.com/jenkins;
ssl_certificate C:/nginx1.15.12/certs/jenkins/server.crt;
ssl_certificate_key C:/nginx1.15.12/certs/jenkins/server.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# note, there is not SSL here! plain HTTP is used
proxy_pass http://tomcat_server;
}
}
Tomcat Config:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyName="localhost"
proxyPort="443"
scheme="https"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />