Reverse proxy configuration for Collabora Online

Put Nginx, Apache or HAProxy in front of coolwsd with the right paths, WebSocket routes, TLS termination and timeouts. Learn what to forward, what to confirm and what the work involves.

On this page

Why Collabora Online needs a reverse proxy configured for WebSockets and WOPISrc routing

If your team runs Nextcloud or another WOPI host and wants browser editing behind your own proxy, the proxy has to do more than pass HTTP traffic to coolwsd. It must forward the Collabora Online paths and the WebSocket connections that carry live editing sessions, terminate TLS correctly, and keep long-lived sessions open with timeouts set for editing rather than for short web requests. A proxy that handles ordinary web pages but drops or times out WebSocket traffic will load the editor and then fail during editing, which is the failure most teams see first.

You need this page when Collabora Online will sit behind Nginx, Apache or HAProxy, when the WOPI host and the Collabora server use separate hostnames, or when you run more than one Collabora Online server. The official Collabora Online Helm chart README makes the multi-server case explicit: horizontal pod autoscaling is disabled because scaling breaks collaborative editing and copy and paste, replicas are set manually, and load balancers must route by the WOPISrc parameter so that everyone editing one document reaches the same pod. The same principle applies to a non-Kubernetes pool, so the routing decision belongs in the design before you choose a proxy product.

Before you change any configuration, confirm three things with your own environment: the hostname and scheme your WOPI host will use to reach Collabora Online, which proxy product and version your platform team supports, and whether you will run one server or a pool. The Nextcloud Office configuration guide recommends using the same protocol for the Collabora server URL as for the Nextcloud installation, preferably HTTPS, and restricting WOPI requests to known Collabora server addresses. Those choices shape the proxy rules that follow.

Choosing Nginx, Apache or HAProxy for Collabora Online

Nginx is the proxy most often named in Collabora's own deployment material. The official Helm chart README lists Nginx as a supported ingress option for Collabora Online, which makes it the lowest-risk starting point when you want a configuration that matches the vendor's tested path. It handles TLS termination, path-based routing to coolwsd, and WebSocket upgrades with a short, well-documented set of directives.

  • Vendor alignment: The Helm chart README names Nginx among the supported ingress controllers, so examples and troubleshooting references are easiest to find for this proxy.
  • WebSocket upgrades: You must pass the Upgrade and Connection headers through to coolwsd for editing sessions to stay open.
  • Long sessions: Raise proxy_read_timeout and proxy_send_timeout above the defaults so idle editing sessions are not dropped.
  • Load balancing: Open-source Nginx offers hash-based upstream selection, which you can key on the WOPISrc parameter when you run more than one server.
  • Team fit: Teams that already run Nginx for web applications can reuse their certificate handling and logging.

Before you commit, confirm the exact directives and header rules against Collabora's current documentation for your release, because proxy guidance changes between branches.

How to configure the proxy step by step

This sequence takes a reverse proxy from a bare server to a working Collabora Online front end, with the hostname, certificates, routes, WOPI restrictions and timeouts each confirmed before the next step begins. Each step ends with a check you can run yourself.

  1. Set the subdomain and DNS record

    Choose a dedicated hostname for the Collabora Online server, such as office.example.com, and create a DNS record that points it at the proxy's public address. Your network team or DNS administrator makes the record, and you confirm it from a machine outside your internal network. The step is complete when the name resolves to the expected address from both inside and outside your network, and the proxy host is reachable on ports 80 and 443. Keep the hostname identical in the Nextcloud server URL later, so the browser and the WOPI host agree on the origin.

  2. Obtain and install the TLS certificate

    Request a certificate for the chosen hostname from your internal certificate authority or a public one, then install the certificate and private key on the proxy. Your security or platform team owns this step, since key handling and certificate lifetime rules come from your own policy. Confirm the chain is complete and the certificate names match the hostname with a command such as openssl s_client against port 443. The step is done when the handshake completes without warnings from a client that trusts your certificate authority.

  3. Forward the coolwsd routes and WebSocket upgrade

    Configure the proxy to forward the Collabora Online paths to coolwsd, including the discovery endpoint, the editor and document paths, and the WebSocket route used for live editing. Set the upgrade headers on the WebSocket location so the connection switches protocols instead of closing. Use the path list from the Collabora Online documentation for your installed version, and confirm each path against your release. The step is complete when the discovery URL returns the expected XML from outside your network and a test document opens in the editor.

  4. Restrict WOPI requests to Collabora server addresses

    Limit which clients can reach the WOPI endpoints by allowing only the IP addresses of your Nextcloud servers or other WOPI hosts, as the Nextcloud administration manual recommends. Your network or platform team applies the rule at the proxy or firewall and keeps the list in version control. Test from an address on the allow list and from one outside it, and record the result. The step is complete when the allowed host can open documents and the disallowed address receives a denial.

  5. Match the HTTPS protocol across the server URLs

    Set the Collabora Online server URL in the WOPI host to use the same protocol as the Nextcloud installation, preferably HTTPS, as the Nextcloud manual advises. Check that the public URL that coolwsd advertises matches the hostname and scheme the proxy presents, so the editor does not load mixed content or fail its origin checks. Your Nextcloud administrator makes the change in the Office settings. The step is done when the Nextcloud Office settings save without error and the editor opens over HTTPS in the browser console without mixed-content warnings.

  6. Set timeouts for long editing sessions

    Raise the proxy's read and send timeouts for the WebSocket and document routes so that idle editing sessions are not cut off mid-edit. The right values depend on your users' session habits and your proxy's defaults, so confirm them with your operations team rather than copying a single number from a guide. Apply the same settings on any load balancer in front of the proxy. The step is complete when a document left open and idle beyond your previous timeout still accepts edits when the user returns.

  7. Verify the WebSocket holds under load

    Open a test document, leave the session connected, and watch the WebSocket connection in the browser developer tools while two users edit the same file. Confirm the connection stays in the open state, that edits sync between the two sessions, and that copy and paste works. Repeat the test after any change to the proxy configuration or the Collabora Online version. The step is complete when the connection holds through the full test window and both sessions show the same content.

Which subdomain layout and proxy settings fit each deployment

This table compares the subdomain layout, TLS placement, pod routing and timeout choices for a Collabora Online proxy setup, with the condition under which each option fits. Read each row against your user count, replica count and whether your identity and network teams require encryption between the proxy and coolwsd. The main takeaway is that multi-pod deployments need WOPISrc-aware routing, and long sessions need timeouts agreed with your host application before go-live.

DecisionOptionWhen it fitsWhat to confirm
Subdomain layoutSingle subdomain with path routingSmall single-node deployments where one hostname can serve both the WOPI host and the Collabora pathsWhich paths your build of coolwsd serves and that the WOPI host URL matches the proxy hostname exactly
Subdomain layoutDedicated collabora subdomainMost production setups, since it keeps Collabora routes separate from the host application and simplifies certificates and allow listsDNS record, certificate coverage for the subdomain, and the WOPI allow list entries your host expects
TLS placementSSL terminated at the proxyEnvironments where the proxy holds the certificate and the internal network is already trustedWhether coolwsd is configured to accept forwarded HTTPS and that the proxy sends the original scheme and host headers
TLS placementEnd to end encryption to coolwsdRegulated environments or networks where traffic between the proxy and the Collabora server must also be encryptedInternal certificate handling, trust store on the proxy, and the performance impact measured in your environment
Pod or server countSingle node behind a simple upstreamOne coolwsd server with a stable upstream address and no need to keep editing sessions on a specific backendConnection limits on the proxy and that long-lived WebSocket connections are allowed through
Pod or server countMultiple pods with WOPISrc-based routingSeveral replicas, where all users editing one document must reach the same podThat the load balancer hashes on the WOPISrc parameter, that sticky routing survives failover, and the replica count set manually
Session timeoutsExtended read and send timeouts for WebSocket routesLong editing sessions and large documents, where default proxy timeouts would close active connectionsTimeout values agreed with your host application and tested against real session lengths in a staging environment
Session timeoutsDefault proxy timeoutsShort, occasional editing with no WebSocket traffic expected through the proxyWhether editing sessions drop during idle periods, which usually signals timeouts set too low

Setting timeouts so long editing sessions do not drop

Default proxy timeouts close idle WebSocket connections, and a Collabora editing session depends on keeping that connection open. A user who reads a document without typing still holds a live WebSocket to coolwsd, and a long review can pass through quiet stretches. Nginx, Apache and HAProxy each apply their own idle limits to proxied connections, and these limits are usually set far below the length of a working session. When the proxy cuts the connection, the editor may show a disconnect or lose unsaved changes, and the failure often looks like a Collabora bug when it is a routing setting.

In Nginx, the settings to review are proxy_read_timeout and proxy_send_timeout on the location that forwards WebSocket traffic, along with the Upgrade and Connection headers that the upgrade depends on. Apache needs the proxy module and WebSocket upgrade handling configured on the same path, and its Timeout and ProxyTimeout directives govern how long an idle backend connection survives. HAProxy uses timeout tunnel for upgraded connections, and this value matters more than timeout client and timeout server once the connection has switched protocols. Check each value against the coolwsd documentation for your release and the Nextcloud or WOPI host guidance, and do not copy numbers from a forum post into production without testing them.

Test with a session longer than your current limit. Open a document through the proxy, leave it idle for longer than the proxy's read timeout, then type and save, and repeat with a second user co-editing the same file. Watch the proxy error log and coolwsd logs for closed connections at the moment of disconnect. Ask your team to record the timeout values they chose, the coolwsd version tested and the length of the longest session that stayed stable, so that any change to the proxy, the Collabora release or the load balancer can be checked against the same test.

Security controls at the proxy layer

The reverse proxy is the only component facing clients and WOPI hosts, so it carries most of the exposure. The controls below decide who can reach coolwsd, which internal paths stay closed, and whether the proxy keeps pace with Collabora's security advisories.

TLS termination and certificates

Terminate HTTPS at the proxy with certificates your organization issues and renews. The Nextcloud administration manual recommends using the same protocol, preferably HTTPS, for the Collabora server URL as for the Nextcloud installation, so the browser, the WOPI host and the proxy should all agree on the scheme. Confirm how certificates are renewed, which TLS versions and ciphers the proxy offers, and whether the WebSocket upgrade path uses the same certificate chain as the document paths.

Restricting WOPI access by host IP

The Nextcloud administration manual recommends restricting WOPI requests to the IP addresses of the Collabora servers. Apply that allow list at the proxy as well as in coolwsd, so requests to the WOPI endpoints from unknown addresses are rejected before they reach the application. Keep the list current when the WOPI host changes addresses, and test that a request from an address outside the list is refused.

Keeping admin endpoints private

coolwsd exposes administrative and diagnostic paths that should never be reachable from the public internet. Configure the proxy to return a denial for those paths on every public hostname, and allow them only from a management network or a bastion host. Review the route list after each upgrade, because a new path added in a release can be forwarded by a catch-all rule that was written earlier.

Forwarded client address headers

coolwsd logs and makes access decisions based on the address it sees, so the proxy must set forwarding headers consistently. Set the forwarded-for and forwarded-proto headers at the proxy, and make sure the proxy overwrites any values a client sends instead of passing them through. Check that the Collabora configuration trusts only the proxy's address for these headers, or client-supplied addresses could bypass the allow list.

Patching the proxy with Collabora advisories

Collabora publishes security advisories for Collabora Online. The 25.04 release notes record that 25.04.7.5, released January 29, 2026, fixed CVE-2026-23623, and that package signing keys were updated for RPM and DEB users. Patch coolwsd to the fixed point release and refresh repository signing keys, then patch the proxy package on the same schedule. Ask your proxy vendor or distribution for its own advisory feed so both layers are tracked together.

Questions teams ask before configuring a Collabora Online reverse proxy

How much does a Collabora Online reverse proxy configuration cost?

DeployOpen does not publish a price list, and a quote follows from a written scope, so the cost depends on what that scope covers. The main drivers are the number of hostnames and paths to route, whether SSL terminates at the proxy or further upstream, how many existing proxies or load balancers must change, and how much testing with real documents is needed before sign-off. Ask for a quote that lists each proxy, each hostname, the test cases and the handover documentation. If you are sizing the software itself, the Business plan from Collabora costs 3 euros per user per month for up to 99 users, according to the pricing page, and that subscription is separate from the proxy work.

Can our team configure the reverse proxy without outside help?

Yes, if your team already runs Nginx, Apache or HAProxy in production and can read the WOPI and WebSocket requirements in the Collabora documentation. The work is mostly configuration, but it needs someone who can test editing sessions end to end, not only check that the login page loads. Teams that run their own proxy usually handle the basic routes and hand off the harder parts, such as long session timeouts, multiple upstream servers or unusual network paths. A partner is most useful when the proxy is shared with other applications and changes carry a wider blast radius.

What do we need to provide before the work starts?

Plan to provide the following before the engagement begins:

  • DNS control for the hostname that will serve Collabora Online, and for any subdomain layout you choose
  • A TLS certificate or access to your certificate authority, plus the chain your clients trust
  • Network access from the proxy to the coolwsd servers and from your Nextcloud or other WOPI host to the proxy
  • A set of test documents in the formats your users edit, such as docx, xlsx and pptx, with known-good expectations
  • Named contacts for the WOPI host, the network team and the people who approve production changes

Confirm these with your own environment early, since access approvals often take longer than the configuration itself.

How long does a reverse proxy configuration take?

The duration depends mainly on environment complexity rather than on the product. A single proxy with one hostname, SSL terminated at that proxy and a single coolwsd server is the simplest case. Time grows with each additional hostname, each proxy layer, each upstream server, and each approval step for DNS or certificates. Testing also takes time, especially when you need to confirm that long editing sessions survive your chosen timeouts. Ask for a timeline in the written scope that separates environment access, configuration, testing and handover, and confirm which steps depend on your change windows.

When does a multi-pod deployment change the proxy routing requirements?

Routing changes as soon as more than one Collabora Online pod or server handles editing. Requests must reach the same pod for every user editing a given document, so the load balancer needs to route by the WOPISrc parameter rather than by round-robin alone. The official Helm chart README states that horizontal pod autoscaling is disabled because scaling breaks collaborative editing and copy and paste, so replica counts are set manually. It also lists Nginx, HAProxy and OpenShift Router as supported ingress options. If you plan to run several pods, confirm the routing design before building the first proxy, because retrofitting it later touches every hostname and upstream definition.

Which WOPI and security settings should the proxy enforce?

The proxy should forward the WOPI and WebSocket routes that Collabora Online needs and nothing else. The Nextcloud administration manual recommends restricting WOPI requests to the IP addresses of the Collabora servers and using the same protocol for the Collabora URL as for Nextcloud, preferably HTTPS. Those settings need to match at the proxy, in the Nextcloud configuration and in coolwsd. Confirm the exact allow-list and certificate handling in your environment before go-live, and check that a request from an unlisted address is refused.

What should we test before we accept the proxy configuration?

Test the full editing path, not only the login page. Open documents of each format your users rely on, edit them from two browsers, confirm that changes sync, copy and paste works, and keep a session open long enough to hit your timeouts. Repeat the checks after a restart of the proxy and after a coolwsd restart. For multi-pod setups, open the same document from different users and confirm that all of them land on the same pod. Ask for these test cases to be written into the scope and signed off by the people who will use the system.

How DeployOpen scopes and delivers Collabora Online proxy work

DeployOpen plans, builds and documents the reverse proxy layer for Collabora Online inside your own infrastructure, so routing, TLS and timeouts are agreed before any change reaches production. Engagements are fixed-scope, with the scope, deliverables and timeline agreed in writing before work starts.

How we scope

  • We confirm which proxy you run (Nginx, Apache or HAProxy) and where it sits in your network.
  • We agree the written subdomain layout, WOPI host list and TLS termination point before configuration starts.
  • We record which paths and WebSocket routes must be forwarded, and which Nextcloud or other WOPI host traffic reaches the server.

How we build

  • We write the proxy configuration for your chosen server and test it against a staging coolwsd instance first.
  • We check WebSocket upgrades, long editing sessions and timeout values with real document open, edit and save cycles.
  • We confirm that WOPISrc-based routing keeps every user editing one document on the same backend when you run multiple servers.

How we hand over

  • You receive the tested configuration files, a routing diagram and a record of every timeout and header value chosen.
  • We document the verification steps your team can repeat after a proxy or certificate change.
  • We walk your operators through the failure modes we tested so they can recognize them in logs.

How we support

  • Ongoing support, upgrades and testing after handover are available as a retainer, scoped in writing.
  • Proxy changes are retested when Collabora Online or your proxy version changes, with the scope agreed in advance.
  • Your team keeps ownership of the infrastructure, and we work inside the cloud accounts, data centers or networks you control.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.