Я установил Jenkins и хотел изменить порт по умолчанию с 8080 на 443. У меня это работает, но при переходе к настройкам Jenkins система жалуется, что обратный прокси-сервер настроен неправильно, и когда я смотрю, я вижу, что Jenkins пытается вызывать URL-адреса на порту 8080 через AJAX, что, очевидно, приводит к ошибке 404.
Я использую Apache, и это есть в конфигурации, которую я использовал.
ServerName jenkins.mydomain.com
SSLCertificateFile /etc/letsencrypt/live/jenkins.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jenkins.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.mydomain.com
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
Кто-нибудь знает, что я здесь упускаю?
решение1
Обычно это происходит из-за того, что вы не установили URL-адрес Jenkins в глобальной конфигурации Jenkins. Значение "URL-адрес Jenkins" в конфигурации Jenkins должно соответствовать URL-адресу, который пользователи вводят в адресной строке браузера для посещения веб-интерфейса — в приведенном вами примере значение будет https://jenkins.mydomain.com
.
Jenkins добавляет значение "Jenkins URL" ко всем вызовам AJAX. Если URL Jenkins не задан, по умолчанию используется что-то вроде http://${hostname}:${port}
, где hostname
— имя хоста системы, на которой работает Jenkins, а port
— порт, на котором работает Jenkins (в вашем случае — 8080).