Plaats Collabora achter Nginx zonder WebSockets te verstoren.

Plaats Collabora op een dedicated HTTPS-hostnaam in Nginx, stuur de editor- en discovery-paden door naar coolwsd, en voeg expliciet de WebSocket-upgradeheaders toe aan de live socket-routes. Voor één host kan Nginx de publieke TLS beëindigen en HTTP naar Collabora verzenden via een privé-interface; als Nginx en Collabora in verschillende containers draaien, gebruik dan de Collabora-servicenaam op hun gedeelde netwerk in plaats van 127.0.0.1.

Browser HTTPS op poort 443, doorgestuurd via Nginx naar Collabora via een privé HTTP-verbinding op poort 9980.
De verbindingsconfiguratie voor dit voorbeeld is als volgt: de browser gebruikt HTTPS op poort 443, terwijl Nginx het verkeer doorstuurt naar Collabora via een privé HTTP-upstream op poort 9980.

Dit voorbeeld gaat ervan uit dat gebruikers de verbinding openen https://office.example.comen dat Nginx het certificaat afhandelt. De standaard luisterpoort van Collabora is 9980; gebruik de poort die bereikbaar is in uw implementatie. Een URL-prefix zoals https://example.com/collabora/vereist afgestemde pad- en service-root-instellingen, dus deze root-host-configuratie wordt niet ongewijzigd toegepast.

1. Definieer de upstream- en WebSocket-verbindingsmap.

Voeg in de Nginx- httpcontext een upstream-naam voor Collabora toe en een map die de verbindingsheader upgradealleen instelt wanneer een client een WebSocket-verzoek indient. Plaats dit blok buiten elk ander serverblok. Vervang het adres als Nginx Collabora op een andere manier bereikt.

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

upstream coolwsd {
    server 127.0.0.1:9980;
}

Als Nginx zelf een container is, 127.0.0.1verwijst dit naar die Nginx-container, niet naar de Collabora-container. Op een gedeeld Docker-netwerk kan de upstream in plaats daarvan zijn server collabora:9980;, waarbij de servicenaam wordt gebruikt die in dat netwerk wordt opgelost.

2. Voeg de virtuele HTTPS-host en de Collabora-routes toe.

Binnen het HTTPS- serverblok voor office.example.com, moet u de browserbronnen, discovery-eindpunten, WebSocket-verbindingen en de overige Collabora-paden doorsturen. De locaties volgen de proxyrichtlijnen van Collabora. Plaats specifieke socketlocaties boven de bredere cool/ loolroute, zodat Nginx de WebSocket-headers correct toepast.

Nginx-serverconfiguratie met aparte locaties voor browserassets, discovery en capabilities die naar de Collabora-upstream worden gerouteerd.
Uittreksel uit de Nginx-route: browserassets, WOPI-ontdekking en mogelijkheden worden allemaal doorgegeven aan dezelfde Collabora-upstream.
server {
    listen 443 ssl;
    server_name office.example.com;

    ssl_certificate     /path/to/fullchain.pem;
    ssl_certificate_key /path/to/private-key.pem;

    location ^~ /browser {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

    location ^~ /hosting/discovery {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

    location ^~ /hosting/capabilities {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://coolwsd;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
    }

    location ^~ /cool/adminws {
        proxy_pass http://coolwsd;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
    }

    location ~ ^/(c|l)ool {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Vervang de certificaatpaden door de bestanden voor uw host. Als uw installatie geen gebruikmaakt van de beheerdersconsole, is de /cool/adminwslocatie mogelijk niet nodig voor het bewerken van documenten; de hoofdroute /cool/.../wsis essentieel. De proxy_read_timeouthier genoemde waarde van één uur is slechts een voorbeeld en geen universele vereiste. De standaard time-out voor proxy-leesbewerkingen van Nginx is 60 seconden tussen opeenvolgende leesbewerkingen. Kies een waarde die langer is dan de benodigde inactiviteitsperioden voor uw sessies, of maak gebruik van voldoende WebSocket-pingverkeer indien ondersteund.

3. Stem de TLS-modus van Collabora af op de proxy-hop.

Gebruikers moeten Collabora via HTTPS kunnen bereiken, zelfs wanneer de privéverbinding tussen Nginx en Collabora HTTP gebruikt. In die TLS-terminatieconfiguratie moet coolwsdde proxy als TLS-terminator worden behandeld: SSL wordt uitgeschakeld op de interne listener en SSL-terminatie wordt ingeschakeld. Pas deze instellingen toe via de methode die wordt ondersteund door uw pakket of containerimage en herstart/herlaad Collabora zoals de documentatie vereist.

Een Nginx-locatie voor de Collabora WebSocket-route met HTTP 1.1, Upgrade- en Connection-headers en een lees-time-out.
Uittreksel uit de WebSocket-route: HTTP/1.1 en de Upgrade/Connection-headers zorgen ervoor dat Nginx de liveverbinding van de editor kan tunnelen; pas de lees-time-out aan uw omgeving aan.

Gebruik alleen een HTTP-upstream op een vertrouwd privénetwerk en blokkeer openbare toegang tot poort 9980. Als het beleid encryptie tussen Nginx en Collabora vereist, gebruik dan een HTTPS-upstream en configureer certificaatverificatie correct; schakel verificatie niet uit om een ​​certificaatmismatch te verbergen. De documentatie over proxy-instellingen van Collabora maakt onderscheid tussen SSL bij de proxy en SSL tussen de proxy en de server coolwsd.

Stel de Collabora-URL in de opslagintegratie ook in op de openbare HTTPS-hostnaam. Voor Nextcloud vereist de beheerdershandleiding dat de browser en beide servers elkaar via HTTP(S) kunnen bereiken, met overeenkomende externe protocollen. Beperk de WOPI-whitelist tot de verwachte opslaghost en het Collabora-adres; verruim deze niet te veel om een ​​proxy-routeringsfout op te lossen.

4. Test de configuratie vanaf beide kanten.

Controleer de Nginx-syntaxis voordat je het opnieuw laadt:

sudo nginx -t
sudo systemctl reload nginx

Als Nginx in een container draait, gebruik dan de validatie- en herlaadprocedure van die container. Test vanaf de Nextcloud-host de openbare Collabora-eindpunten met de daadwerkelijke hostnaam:

curl -fsS https://office.example.com/hosting/discovery -o /dev/null
curl -fsS https://office.example.com/hosting/capabilities -o /dev/null

Open die HTTPS-URL's ook vanuit een gebruikersbrowser. Ze controleren de bereikbaarheid, maar een succesvolle ontdekkingsreactie alleen bewijst niet dat documentbewerking werkt. Open een document en gebruik het netwerkpaneel van de browser om te controleren of de assets worden geladen en de /cool/.../wsverbinding open blijft. Een succesvolle HTTP/1.1 WebSocket-verbinding wordt meestal weergegeven 101 Switching Protocols; de exacte weergave kan afhangen van de browser en het transportprotocol. Als deze standaardconfiguratie werkt in Firefox, maar niet in Chromium, controleer dan de aanvraagmethode en het protocol. Een Collabora-probleemrapport voor versie 25.04 beschrijft een Chromium WebSocket via HTTP/2 die CONNECTeen 405-foutmelding geeft; het rapport is nog steeds open, zoals gecontroleerd op 9 oktober 2026. Dit is een versiespecifiek rapport, geen universeel gedrag. Vergelijk uw Collabora-, Nginx- en browserversies voordat u HTTP/2-instellingen wijzigt. Zie Collabora-probleem 12155 .

Een terminalvenster toont een curl-commando voor het Collabora discovery-eindpunt boven een generieke, lege documenteditor.
Verificatieweergave: de terminal toont de detectiecontrole die moet worden uitgevoerd, terwijl de editor klaar is voor een aparte test met een echt document; dit voorbeeld geeft geen resultaat weer.

Als de detectie mislukt, controleer dan het foutenlogboek van Nginx en verifieer de upstream hostnaam, poort en het protocol. Als de detectie wel werkt, maar bewerken geen verbinding kan maken, controleer dan de WebSocket-route, headers, time-out en de Collabora-logboeken. Een WOPI-autorisatiefout wijst op de whitelist van de opslaghost. De handleiding voor probleemoplossing van Nextcloud Office raadt aan om de bereikbaarheid vanuit de browser, Nextcloud en Collabora te controleren en vervolgens de logboeken van beide servers te bekijken.

De Nginx WebSocket-proxyhandleiding legt uit waarom Upgradede parameters Connectionexpliciet moeten worden doorgegeven en waarom het gedrag van de inactiviteitstime-out van belang is. Zie de referentie van de Nginx-proxymodule voor meer informatie over het gedrag van de directive. Zodra de controles geslaagd zijn, opent, bewerkt, slaat u een testdocument op en heropent u het voordat u gebruikers uitnodigt om de nieuwe route te gebruiken.

Laat een reactie achter

Bescherm Collabora CODE-documenten in rust met opslagversleuteling.

Bescherm Collabora CODE-documenten in rust met opslagversleuteling.

Beveilig bestanden die in Collabora CODE zijn bewerkt door de opslaglaag te versleutelen, tijdelijke gegevens te beschermen en de versleuteling en het herstel te verifiëren.

Zorg dat Collabora CODE werkt op ARM64 met de juiste image.

Zorg dat Collabora CODE werkt op ARM64 met de juiste image.

Controleer de architectuur van uw host, bevestig dat de CODE-tag ARM64 publiceert, verwijder de geforceerde AMD64-instellingen en onderscheid afbeeldingsfouten van problemen met machtigingen of geheugen.

Verbind Collabora Online met ownCloud Infinite Scale.

Verbind Collabora Online met ownCloud Infinite Scale.

Stel de WOPI-verbinding tussen Collabora Online en ownCloud Infinite Scale in, configureer de juiste service-URL's en controleer of documentbewerkingen worden opgeslagen.

Blokbestanden exporteren in Collabora CODE via WOPI

Blokbestanden exporteren in Collabora CODE via WOPI

Voorkom het exporteren van documenten in Collabora Online CODE door de WOPI-machtiging DisableExport in te stellen en vervolgens te controleren of de host en editor deze machtiging afdwingen.

Plaats Collabora achter Nginx zonder WebSockets te verstoren.

Plaats Collabora achter Nginx zonder WebSockets te verstoren.

Configureer Nginx TLS-terminatie, Collabora-routes en WebSocket-headers en test vervolgens de openbare eindpunten voordat u echte documenten opent.

Voorkom dat codebewerkingssessies na 10 minuten eindigen.

Voorkom dat codebewerkingssessies na 10 minuten eindigen.

Traceer een CODE-verbinding die na 10 minuten verbroken is naar de proxy, load balancer of WebSocket-verbinding, corrigeer vervolgens de time-out en controleer of de sessie verbonden blijft.

Implementeer Collabora CODE op Kubernetes met Helm

Implementeer Collabora CODE op Kubernetes met Helm

Installeer de officiële Collabora Helm-grafiek, configureer WOPI-toegang en ingress-affiniteit en controleer of de implementatie zonder veelvoorkomende installatiefouten.

Een leeg Collabora-document traceren naar de falende laag

Een leeg Collabora-document traceren naar de falende laag

Gebruik browserverzoeken, WOPI-logboeken en gerichte proxycontroles om te achterhalen waarom Collabora een leeg document opent, en kies een oplossing die aansluit bij de bevindingen.

Schakel meertalige spellingcontrole in Collabora Online in met CODE

Schakel meertalige spellingcontrole in Collabora Online in met CODE

Configureer de CODE Docker-woordenboeken en tag documentpassages correct, zodat Engels, Frans en andere ondersteunde talen de juiste spellingcontrole krijgen.

Stel de inactiviteitstimer van Collabora in voor actieve documentweergaven.

Stel de inactiviteitstimer van Collabora in voor actieve documentweergaven.

Pas de drempelwaarde voor inactiviteit per weergave aan in coolwsd en onderscheid deze van het dimmen van tabbladen op de achtergrond, het sluiten van documenten, automatisch opslaan en het verlopen van inloggegevens.