Breadcrumbs

My Viewport doesn't work with a proxy server setup

Symptom

If your Confluence installations runs behind a reverse-proxy or load balancer, you should make sure that both Confluence and the proxy are configured correctly. Some advanced setups, for example running a viewport on a different domain than Confluence, require that values like the URL scheme, the server name, and the server port are correctly passed to the viewport by Tomcat, the enclosing container.

PDF or Word exports from within viewports cannot be downloaded if the viewport domain is different from the Confluence base URL’s domain

Common effects of an incomplete configuration are:

  • Viewports with a custom domain name are not reachable

  • Confluence rejecting certain requests whose server name does not match the name of the host. 

    • For example: POST requests to /rest/webResources/1.0/resources that fail with a status code of 403

Learn more about how to setup  custom domains and reverse proxies in Viewport.

Scroll Sites Proxy Debugger

Scroll Sites offers a proxy debugger UI which helps you to debug your proxy settings.

You can reach the proxy debugger via:

<confluence-base-url>/plugins/servlet/scroll-viewport/proxy-debugger

Example output

The debugger UI will output information about the following settings for example like this:

Value = the current value Viewport receives.

Expected = the value Viewport expects to receive.

Key

Value

Expected

Status

request.getScheme

http

http

Match

request.getProtocol

HTTP/1.1



request.isSecure

false

false

Match

request.getServerName

localhost

localhost

Match

request.getServerPort

8090

8090

Match

request.getContextPath




request.getRequestURI

/plugins/servlet/scroll-viewport/proxy-debugger



request.getLocalAddr

0:0:0:0:0:0:0:1



request.getLocalPort

8090



request.getRemoteHost

0:0:0:0:0:0:0:1



request.getRemoteAddr

0:0:0:0:0:0:0:1



request.getRemotePort

60331



Header: accept-encoding

gzip, deflate, br



Header: accept-language

en-US,en;q=0.9,de-DE;q=0.8,de;q=0.7



Header: connection

keep-alive



Header: host

localhost:8090

localhost:8090

Match

Header: sec-ch-ua

"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"



Header: sec-ch-ua-mobile

?0



Header: sec-fetch-dest

document



Header: sec-fetch-mode

navigate



Header: sec-fetch-site

none



Header: sec-fetch-user

?1



Header: upgrade-insecure-requests

1