Jenkins Ajax 호출이 잘못된 포트를 사용하고 있습니다.

Jenkins Ajax 호출이 잘못된 포트를 사용하고 있습니다.

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)입니다.hostnameport

Stack Overflow에 대한 비슷한 답변입니다.

관련 정보