Inicio
» Cómo
»
Integra Collabora con Nginx sin interrumpir los WebSockets.
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.
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.
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.
Fragmento de ruta de Nginx: los recursos del navegador, el descubrimiento de WOPI y las capacidades se pasan al mismo servidor ascendente de Collabora.
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.
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:
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 .
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.