Jenkins를 설치하고 기본 포트를 8080에서 443으로 변경하고 싶었습니다. 작동은 되지만 Jenkins 설정으로 이동하면 시스템에서 역방향 프록시가 올바르게 구성되지 않았다고 불평하고, 살펴보니 , 젠킨스가 ajax를 통해 8080 포트에서 URL을 호출하려고 시도하는 것을 확인했습니다. 결과적으로 분명히 404가 발생합니다.
나는 아파치를 사용하고 있는데 이것은 내가 사용한 구성에 있습니다.
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
이는 일반적으로 전역 Jenkins 구성에서 Jenkins URL을 설정하지 않았기 때문에 발생합니다. Jenkins 구성의 "Jenkins URL" 값은 사용자가 웹 UI를 방문하기 위해 브라우저의 URL 표시줄에 입력하는 URL과 일치해야 합니다. 제공한 예에서 값은 입니다 https://jenkins.mydomain.com
.
Jenkins는 모든 AJAX 호출에 "Jenkins URL" 값을 추가합니다. Jenkins URL이 설정되지 않은 경우 기본값은 Jenkins가 실행 중인 시스템의 호스트 이름이고 http://${hostname}:${port}
Jenkins 가 실행 중인 포트(귀하의 경우 8080)입니다.hostname
port