Reverse proxy configuration

This site is the new docs site currently being tested. For the actual docs in use please go to https://www.jenkins.io/doc.

A 'reverse proxy' allows an alternate HTTP or HTTPS provider to communicate with web browsers on behalf of Jenkins. The alternate provider may offer additional capabilities, like SSL encryption. The alternate provider may offload some work from Jenkins, like delivering static images.

General Guidelines

Jenkins actively monitors reverse proxy configuration. Jenkins reports “Your reverse proxy setup is broken” when it detects a reverse proxy configuration problem. Refer to the troubleshooting section if Jenkins is reporting that your reverse proxy setup is broken.

Background

Reverse proxies receive inbound HTTP requests and forward those requests to Jenkins. It receives the outbound HTTP response from Jenkins and forwards those requests to the original requester. A correctly configured reverse proxy rewrites both the HTTP request and the HTTP response.

When HTTP request rewriting is misconfigured, pages won’t be displayed at all. Refer to Configuration Examples by Server Type if your reverse proxy is not displaying any Jenkins pages.

A reverse proxy must handle the HTTP response by either rewriting the response or setting HTTP headers on the forwarded request. When HTTP response handling is misconfigured, Jenkins may fail to show updated information on a page or it may ignore changes submitted through web pages. Refer to the troubleshooting section if Jenkins is reporting that your reverse proxy setup is broken or pages are not behaving as expected.

Configuration Examples by Server Type

Jenkins works with many different reverse proxies. This section provides examples for specific reverse proxies, though much of the information also applies to other reverse proxies.