Jenkins ajax 呼叫使用了錯誤的端口

Jenkins ajax 呼叫使用了錯誤的端口

我安裝了 jenkins,並想將預設連接埠從 8080 更改為 443。 ajax呼叫8080埠上的url,這顯然會導致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

發生這種情況通常是因為您尚未在全域 Jenkins 配置中設定 Jenkins URL。 Jenkins 配置中「Jenkins URL」的值應與您的使用者在瀏覽器的 URL 欄中輸入的用於存取 Web UI 的 URL 相符 - 在您給出的範例中,該值將為https://jenkins.mydomain.com

Jenkins 將「Jenkins URL」的值加入所有 AJAX 呼叫中。如果未設定 Jenkins URL,則預設為類似 的內容http://${hostname}:${port},其中hostname是 Jenkins 運行的系統的主機名,port是 Jenkins 運行的連接埠(在您的範例中為 8080)。

Stack Overflow 上的類似答案。

相關內容