Apache-2.4

Jenkins ajax 呼叫使用了錯誤的埠

  • August 31, 2018

我安裝了 jenkins,並想將預設埠從 8080 更改為 443。我已經開始工作了,但是當進入 Jenkins 設置時,系統抱怨反向代理配置不正確,當我查看時,我看到jenkins試圖通過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"

有人知道我在這裡缺少什麼嗎?

這通常是因為您沒有在全域 Jenkins 配置中設置 Jenkins URL。Jenkins 配置中“Jenkins URL”的值應與使用者在瀏覽器的 URL 欄中輸入以訪問 Web UI 的 URL 相匹配 - 在您給出的範例中,該值為https://jenkins.mydomain.com.

Jenkins 將“Jenkins URL”的值添加到所有 AJAX 呼叫中。如果 Jenkins URL 未設置,則預設為Jenkins 正在執行的系統的主機名和 Jenkins 正在執行的埠(在您的情況下為 8080)http://${hostname}:${port}hostname``port

Stack Overflow 上的類似答案。

引用自:https://serverfault.com/questions/928683