Proxy Settings

Settings for running OpenReplay behind a proxy like NGINX or Apache2.

Proxy Settings

Hosting OpenReplay with other applications using reverse proxy

Section titled Hosting OpenReplay with other applications using reverse proxy

When OpenReplay is running in a machine, it’ll use port 80/443 to expose the application. But when you’re using a reverse proxy, OpenReplay can be configured to use another port to access the application. Below are the steps on how to do that:

  1. Edit config file:
openreplay -e
  1. Change the nginx config section:
ingress-nginx: &ingress-nginx
  controller:
	...
	...
    service:
      externalTrafficPolicy: "Local"
      ports:
        http: 880   # Change this port for http
        https: 8443 # Change this port for https
  1. Save and exit the config using :wq so OpenReplay can reload the configuration.

Your reverse proxy can then be configured. Refer to the below sections to do so.

Make sure your proxy is sending the X-Forwarded-For and X-Forwarded-Proto headers. SSL must also be enabled for OpenReplay to work. The rest of the config should look like this:

location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://1.2.3.4:880; # replace with OpenReplay instance IP
    }

Ensure proxy, proxy_http and proxy_html modules are enabled. SSL too should be configured, the rest of the settings should be similar to this:

<VirtualHost *:443>
    ProxyPass / http://1.2.3.4:880 <!-- replace with instance IP -->
    RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
    # SSL + other config here
</VirtualHost>

In case you’re protecting your OpenReplay instance with a proxy, ensure the below endpoints are publicly accessible for OpenReplay to work properly.

EndpointDescriptionOriginator
/ingestFor ingesting events and recordings coming from your appYour tracked app(s) (if publicly accessible then this endpoint should be public too)
/ws-assistFor live session replays with end users (WebSocket)Your tracked app(s) (if publicly accessible then this endpoint should be public too)
/apiFor authentication and fetching of sessions, projects, RBAC and account dataOpenReplay Dashboard
/v2/apiFor search, analytics, session replay and co-browsingOpenReplay Dashboard
/spotsFor pulling spot videos from the object storageOpenReplay Dashboard
/mobsFor pulling session replays from the object storageOpenReplay Dashboard
/sessions-assetsFor pulling cached stylesheets and fonts from the object storageOpenReplay Dashboard
/staticFor pulling data related to co-browsing sessionsOpenReplay Dashboard
/recordsFor pulling co-browsing recordings from object storageOpenReplay Dashboard
/integrationsFor fetching logs from 3-rd party integrations (like Sentry or Datadog)OpenReplay Dashboard
/sourcemapsFor uploading sourcemapsSourcemaps CLI
/spotFor fetching data related to spot recordingsSpot Chrome Extension
/scriptUseful if you wish to serve the openreplay-*.js files from your setup (otherwise defaults to OpenReplay CDN)Your tracked app(s)

If you have any questions about this process, feel free to reach out to us on our Slack .