Integra Collabora con Nginx sin interrumpir los WebSockets.

Coloque Collabora en un nombre de host HTTPS dedicado en Nginx, reenvíe sus rutas de editor y descubrimiento a coolwsd, y pase explícitamente los encabezados de actualización de WebSocket en las rutas de socket en vivo. Para un solo host, Nginx puede terminar TLS público y enviar HTTP a Collabora en una interfaz privada; si Nginx y Collabora se ejecutan en contenedores diferentes, use el nombre del servicio de Collabora en su red compartida en lugar de 127.0.0.1.

El tráfico HTTPS del navegador en el puerto 443 se enruta a través de Nginx hacia Collabora mediante HTTP privado en el puerto 9980.
Configuración de conexión para este ejemplo: el navegador utiliza HTTPS en el puerto 443, mientras que Nginx reenvía el tráfico a Collabora a través de una conexión HTTP privada en el puerto 9980.

Este ejemplo asume que los usuarios abren la URL https://office.example.comy que Nginx gestiona su certificado. El puerto de escucha predeterminado de Collabora es el 9980; utilice el puerto accesible en su implementación. Un prefijo de URL como este https://example.com/collabora/requiere una configuración coordinada de ruta y raíz del servicio, por lo que esta configuración de host raíz no se aplicará sin cambios.

1. Defina el mapa de conexión ascendente y de WebSocket.

En el httpcontexto de Nginx, agregue un nombre de origen para Collabora y un mapa que establezca el encabezado de conexión upgradesolo cuando un cliente solicite un WebSocket. Coloque este bloque fuera de cualquier otro serverbloque. Reemplace la dirección si Nginx accede a Collabora por otra vía.

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

upstream coolwsd {
    server 127.0.0.1:9980;
}

Si Nginx es un contenedor, 127.0.0.1se refiere a ese contenedor Nginx, no al contenedor Collabora. En una red Docker compartida, el upstream puede ser server collabora:9980;, usando el nombre del servicio que se resuelve en esa red.

2. Agregue el host virtual HTTPS y las rutas de Collabora.

Dentro del serverbloque HTTPS para office.example.com, reenvíe los recursos del navegador, los puntos finales de descubrimiento, las conexiones WebSocket y las rutas restantes de Collabora. Las ubicaciones siguen las directrices de proxy de Collabora. Mantenga las ubicaciones de socket específicas por encima de la ruta cool/ más amplia loolpara que Nginx aplique correctamente los encabezados WebSocket.

Configuración del servidor Nginx con ubicaciones separadas para los recursos del navegador, el descubrimiento y las capacidades enrutadas al servidor ascendente de Collabora.
Fragmento de ruta de Nginx: los recursos del navegador, el descubrimiento de WOPI y las capacidades se pasan al mismo servidor ascendente de Collabora.
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;
    }
}

Sustituya las rutas de los certificados por los archivos de su host. Si su instalación no utiliza la consola de administración, /cool/adminwses posible que no necesite la ubicación para editar documentos; la /cool/.../wsruta principal es esencial. El proxy_read_timeoutvalor de una hora que se muestra aquí es solo un ejemplo, no un requisito universal. El tiempo de espera de lectura del proxy predeterminado de Nginx es de 60 segundos entre lecturas sucesivas. Elija un valor mayor que los períodos de inactividad que requieren sus sesiones o utilice el tráfico de ping de WebSocket adecuado, si está disponible.

3. Asegúrese de que el modo TLS de Collabora coincida con el salto del proxy.

Los usuarios deben acceder a Collabora mediante HTTPS, incluso cuando la conexión privada de Nginx a Collabora utilice HTTP. En esta configuración de terminación TLS, configure coolwsdel proxy para que actúe como terminador TLS: SSL se desactiva en el oyente interno y la terminación SSL se habilita. Aplique esta configuración mediante el método compatible con su paquete o imagen de contenedor y, a continuación, reinicie o recargue Collabora según lo indique su documentación.

Una ubicación Nginx para la ruta WebSocket de Collabora con HTTP 1.1, encabezados Upgrade y Connection, y un tiempo de espera de lectura.
Fragmento de la ruta WebSocket: HTTP/1.1 y los encabezados Upgrade/Connection permiten que Nginx cree un túnel para la conexión en vivo del editor; ajuste el tiempo de espera de lectura según su entorno.

Utilice una conexión HTTP ascendente solo en una red privada de confianza y bloquee el acceso público al puerto 9980. Si la política requiere cifrado entre Nginx y Collabora, utilice una conexión HTTPS ascendente y configure correctamente la verificación de certificados; no desactive la verificación para ocultar una discrepancia en el certificado. La documentación de configuración del proxy de Collabora distingue entre SSL en el proxy y SSL entre el proxy y coolwsd.

Además, configure la URL de Collabora en la integración de almacenamiento con el nombre de host HTTPS público. Para Nextcloud, su manual de administración requiere que el navegador y ambos servidores puedan comunicarse entre sí mediante HTTP(S), con protocolos externos coincidentes. Restrinja la lista de permisos de WOPI al host de almacenamiento y la dirección de Collabora esperados; no la flexibilice demasiado para solucionar un error de enrutamiento de proxy.

4. Pruebe la configuración desde ambos lados.

Comprueba la sintaxis de Nginx antes de recargarla:

sudo nginx -t
sudo systemctl reload nginx

Si Nginx se ejecuta en un contenedor, utilice el procedimiento de validación y recarga de dicho contenedor. Desde el host de Nextcloud, pruebe los puntos finales públicos de Collabora con el nombre de host real:

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

Abra también esas URL HTTPS desde un navegador de usuario. Comprueban la accesibilidad, pero una respuesta de descubrimiento exitosa por sí sola no prueba que la edición del documento funcione. Abra un documento y use el panel de red del navegador para confirmar que los recursos se cargan y la /cool/.../wsconexión permanece abierta. Un WebSocket HTTP/1.1 exitoso suele mostrar 101 Switching Protocols; la visualización exacta puede depender del navegador y el transporte. Si esta configuración estándar funciona en Firefox pero falla en Chromium, inspeccione el método de solicitud y el protocolo. Un informe de problemas de Collabora abierto para 25.04 documenta un WebSocket de Chromium sobre HTTP/2 usando CONNECTy recibiendo 405; permanece abierto como se verificó el 9 de octubre de 2026. Este es un informe específico de la versión, no un comportamiento universal. Compare sus versiones de Collabora, Nginx y navegador antes de cambiar la configuración de HTTP/2. Consulte el problema 12155 de Collabora .

Una terminal que muestra un comando curl para el punto final de descubrimiento de Collabora sobre un editor de documentos vacío genérico.
Vista de verificación: la terminal muestra la comprobación de detección que se va a ejecutar, mientras que el editor está listo para una prueba independiente con un documento real; este ejemplo no implica ningún resultado.

Si falla la detección, revise el registro de errores de Nginx y verifique el nombre de host, el puerto y el protocolo del servidor de origen. Si la detección funciona, pero no se puede conectar a la edición, revise la ruta WebSocket, los encabezados, el tiempo de espera y los registros de Collabora. Un error de autorización de WOPI apunta a la lista de servidores permitidos del host de almacenamiento. La guía de solución de problemas de Nextcloud Office recomienda verificar la accesibilidad desde el navegador, Nextcloud y Collabora, y luego revisar los registros de ambos servidores.

La guía de proxy de Nginx WebSocket explica por qué Upgradees Connectionnecesario pasar explícitamente y por qué es importante el comportamiento del tiempo de espera por inactividad. Consulte la referencia del módulo proxy de Nginx para conocer el comportamiento de las directivas. Una vez superadas las comprobaciones, abra, edite, guarde y vuelva a abrir un documento de prueba antes de invitar a los usuarios a utilizar la nueva ruta.

Dejar un comentario

Integra Collabora con Nginx sin interrumpir los WebSockets.

Integra Collabora con Nginx sin interrumpir los WebSockets.

Configure la terminación TLS de Nginx, las rutas de Collabora y los encabezados de WebSocket, y luego pruebe los puntos finales públicos antes de abrir documentos reales.

Evita que las sesiones de edición de código finalicen a los 10 minutos.

Evita que las sesiones de edición de código finalicen a los 10 minutos.

Localice una desconexión de CODE de 10 minutos en su proxy, balanceador de carga o ruta WebSocket, luego corrija el tiempo de espera y verifique que la sesión permanezca conectada.

Implementa Collabora CODE en Kubernetes con Helm.

Implementa Collabora CODE en Kubernetes con Helm.

Instale el gráfico Helm oficial de Collabora, configure el acceso WOPI y la afinidad de entrada, y verifique la implementación sin errores de configuración comunes.

Rastrea un documento de Collabora en blanco hasta la capa que falla.

Rastrea un documento de Collabora en blanco hasta la capa que falla.

Utilice las solicitudes del navegador, los registros WOPI y las comprobaciones de proxy específicas para averiguar por qué Collabora abre un documento en blanco y elija una solución que se ajuste a las pruebas.

Habilitar la revisión ortográfica multilingüe en Collabora Online CODE

Habilitar la revisión ortográfica multilingüe en Collabora Online CODE

Configure correctamente los diccionarios de CODE Docker y etiquete los pasajes del documento para que el inglés, el francés y otros idiomas compatibles reciban la corrección ortográfica adecuada.

Configura el temporizador de inactividad de Collabora para las vistas de documentos activas.

Configura el temporizador de inactividad de Collabora para las vistas de documentos activas.

Ajusta el umbral de inactividad por vista en coolwsd y diferéncialo del atenuado de pestañas en segundo plano, la descarga de documentos, el guardado automático y la expiración de la sesión.

Deshabilitar las comprobaciones de actualización de código de Collabora y las conexiones no deseadas.

Deshabilitar las comprobaciones de actualización de código de Collabora y las conexiones no deseadas.

Detenga las comprobaciones de actualización de CODE programadas, revise los servicios remotos opcionales y utilice los controles de red salientes sin interrumpir la edición de documentos.

Conecte Seafile y Collabora con la URL WOPI correcta.

Conecte Seafile y Collabora con la URL WOPI correcta.

Habilite la edición segura de documentos en Seafile configurando la URL de descubrimiento de Collabora, HTTPS y el acceso WOPI para su implementación.

Restaurar la función de copiar y pegar entre Collabora y las aplicaciones de escritorio.

Restaurar la función de copiar y pegar entre Collabora y las aplicaciones de escritorio.

Pruebe el portapapeles del sistema, ajuste los permisos del navegador e identifique cuándo una integración de Collabora integrada necesita un cambio en la política de iframe.

Habilitar fuentes personalizadas en Collabora CODE Docker

Habilitar fuentes personalizadas en Collabora CODE Docker

Monta los archivos de fuentes en Docker y en la placa del sistema de Collabora para que las tipografías personalizadas aparezcan en el editor y se muestren correctamente en los documentos.