Jenkins Ajax-Aufrufe verwenden den falschen Port

Jenkins Ajax-Aufrufe verwenden den falschen Port

Ich habe Jenkins installiert und wollte den Standardport von 8080 auf 443 ändern. Das funktioniert, aber wenn ich zu den Jenkins-Einstellungen gehe, beschwert sich das System, dass der Reverse-Proxy nicht richtig konfiguriert ist. Wenn ich nachschaue, sehe ich, dass Jenkins versucht, URLs auf dem Port 8080 über Ajax aufzurufen, was offensichtlich zu einer 404-Fehlermeldung führt.

Ich verwende Apache und dies ist in der Konfiguration, die ich verwendet habe.

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"

Hat jemand eine Ahnung, was ich hier übersehe?

Antwort1

Dies liegt normalerweise daran, dass Sie Ihre Jenkins-URL nicht in der globalen Jenkins-Konfiguration festgelegt haben. Der Wert für „Jenkins-URL“ in der Jenkins-Konfiguration sollte mit der URL übereinstimmen, die Ihre Benutzer in die URL-Leiste ihres Browsers eingeben, um die Web-Benutzeroberfläche zu besuchen – in dem von Ihnen angegebenen Beispiel wäre der Wert https://jenkins.mydomain.com.

Jenkins stellt allen AJAX-Aufrufen den Wert „Jenkins URL“ voran. Wenn die Jenkins-URL nicht festgelegt ist, wird standardmäßig etwas in der Art von verwendet http://${hostname}:${port}, wobei hostnameder Hostname des Systems ist, auf dem Jenkins ausgeführt wird, und portder Port ist, auf dem Jenkins ausgeführt wird (in Ihrem Fall 8080).

Ähnliche Antwort auf Stack Overflow.

verwandte Informationen