Details
-
Bug
-
Status: Resolved (View Workflow)
-
Minor
-
Resolution: Not A Defect
-
None
-
OS: SuSE Linux Enterprise Server 11 SP3 x86_64
Apache Tomcat 6.0.37
Reverse proxy: Apache Web Server 2.2.12 Release 1.40.1
Description
After upgrading Jenkins from 1.551 to 1.552, the Manage Jenkins screen has the message "It appears that your reverse proxy set up is broken." The reverse proxy configuration has been correctly working before the upgrade.
The test URI
/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
is redirecting to
/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/a%2Fb/
which is giving a 404 error.
In previous versions of Jenkins, it redirected to
/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test-for-reverse-proxy-setup
which returned 200 OK.
I am using Apache Web Server with mod_proxy_ajp as a reverse proxy in front of the Tomcat serving Jenkins.
Here's a great test case: Access Jenkins directly, not through the reverse proxy. If it works without this message showing up, your reverse proxy is broken.
If you use Apache as reverse proxy, it needs to be at least 2.2.18 and set the option AllowEncodedSlashes NoDecode (earlier versions only have values On and Off, both of which are wrong); as well as nocanon in the ProxyPass directive.
Both need to be set within the VirtualHost, as AllowEncodedSlashes isn't inherited.
Example: