Restablecer la conexión WebSocket de Collabora a través del proxy

Cuando Collabora Online informa que una conexión de socket se cerró inesperadamente, primero verifique si la solicitud WebSocket del navegador llega coolwsda través del proxy inverso. Asegúrese de que la ruta del proxy coincida con la versión de Collabora, conserve la actualización de WebSocket y la ruta URL, y luego pruebe un documento mientras observa el panel de red del navegador y los registros del servidor. Si el problema comenzó después de una actualización a CODE 26.04 detrás de Apache, revise ProxyPassprimero las reglas de Apache: las notas de la versión 26.04 de Collabora mencionan un cambio en la URL compacta de WebSocket.

Un WebSocket es la conexión bidireccional de larga duración que Collabora utiliza entre el navegador y su servidor mientras un documento está abierto. Un proxy inverso es el servicio que acepta la solicitud pública y la reenvía a Collabora. El mensaje de error apunta a esa conexión, pero no prueba que el proxy sea la causa; un host WOPI rechazado, una URL pública incorrecta, una discrepancia en TLS o un servidor backend erróneo también pueden interrumpir la sesión.

Cuadro de diálogo de error del editor de documentos que indica que la conexión de socket se cerró inesperadamente.
El cuadro de diálogo muestra el mensaje de socket cerrado que inicia esta comprobación de solución de problemas.

Antes de cambiar nada, identifica tu ruta.

Anote la versión de Collabora o la etiqueta de imagen, el software proxy, el nombre de host público de Collabora y si TLS finaliza en el proxy o en Collabora. Verifique el nombre del servicio y la imagen actual sin modificar la implementación:

docker compose ps collabora
docker compose images collabora

Reemplaza collaboracon el nombre del servicio en tu archivo Compose. Para un contenedor que no sea Compose, usa docker psy docker inspectpara identificar el contenedor y la imagen. No asumas que la latestetiqueta sigue apuntando a la misma versión que probaste la semana pasada.

1. Observa dónde se detiene el protocolo de enlace de WebSocket.

En el navegador, abre Herramientas para desarrolladores, selecciona Red , filtra por WS o WebSocket e intenta abrir un documento nuevamente. La URL de la solicitud debe usarse wss://cuando la página pública sea HTTPS. Selecciona la solicitud fallida y anota su estado, ruta URL y encabezados de respuesta. Un handshake exitoso normalmente devuelve 101 Switching Protocolsy permanece abierto mientras la sesión del documento esté activa.

Panel de red del navegador ilustrativo filtrado a solicitudes WebSocket con una solicitud fallida que devuelve el estado 400.
Utilice el estado y la ruta de la solicitud WebSocket para localizar el salto que está fallando; este panel es un ejemplo ilustrativo.
  • No aparece ninguna solicitud WebSocket: compruebe la URL de Collabora de la aplicación de integración, la consola del navegador, el DNS y cualquier error de redirección o contenido mixto antes de editar las reglas del servidor.
  • La solicitud devuelve un código 400 o 404: compare la ruta solicitada con la ruta que reenvía su proxy y la ruta compatible con la versión de Collabora instalada. Un código 400 que coolwsdindica "Solicitud no válida o desconocida" puede significar que la solicitud llegó a Collabora con una ruta que no acepta.
  • La solicitud devuelve 502 o 504: compruebe si el proxy puede alcanzar el servidor ascendente de Collabora configurado y si la dirección y el puerto apuntan al contenedor o host correcto.
  • La solicitud devuelve 101 y luego se cierra: revise los tiempos de espera por inactividad del proxy, el balanceador de carga, el firewall y la red del cliente. Un WebSocket es de larga duración, por lo que un intermediario que cierra las conexiones inactivas demasiado pronto puede interrumpir una apertura que, de otro modo, sería exitosa.

2. Compare la regla proxy con su versión de Collabora.

Utilice la configuración actual del proxy inverso de Collabora para el software y la versión del proxy que esté utilizando. Verifique que la ruta WebSocket se gestione como tal, que el proxy reenvíe los encabezados de actualización y que conserve la ruta y la cadena de consulta codificada en lugar de redirigirlas o reescribirlas. El proxy también debe enviar el host público y el esquema de forma coherente con el nombre del servidor externo y la configuración de terminación TLS de Collabora.

Para Nginx, revise la ubicación específica de WebSocket y sus directivas HTTP/1.1, Upgradey Connectionde reenvío en el ejemplo actual de Collabora. Para Apache, compare la ProxyPassregla y el orden con el ejemplo actual; no copie una /cool/…/wscoincidencia antigua sin verificar lo que solicita su versión instalada.

Esta comprobación de versión es importante para CODE 26.04. Las notas de la versión de Collabora, publicadas el 8 de junio de 2026, describen una URL de WebSocket más compacta e indican que los usuarios de proxy inverso Apache deben adaptarse ProxyPassa ella. Posteriormente, en la versión 26.04, se añadió un comportamiento alternativo para las URL antiguas, por lo que una regla anterior podría seguir funcionando en algunas compilaciones; el informe de Collabora sobre WebSocket 26.04 resuelto documenta este seguimiento. El comportamiento alternativo no sustituye la necesidad de que la configuración del proxy actual coincida con la versión instalada. Lea conjuntamente las notas de la versión de CODE 26.04 y el ejemplo actualizado del SDK.

Patrón ilustrativo de registro de coolwsd censurado que muestra una solicitud no válida para la ruta compacta de WebSocket.
Este ejemplo censurado muestra el tipo de ruta de solicitud no válida que se debe comparar con la ruta que reenvía su proxy; no se trata de una captura de registro en tiempo real.

3. Identifique un fallo y realice un cambio específico.

Inicie un flujo de registro corto antes de volver a intentar el documento. --sinceLa opción de Docker limita la salida inicial, mientras que --followgenera nuevas líneas; consulte la referencia de registros de Docker Compose .

docker compose logs --since=2m --follow collabora

Registre la hora de la prueba y busque la misma solicitud en los registros de Collabora y del proxy. Si el navegador solicita una ruta que el proxy redirige al backend incorrecto, actualice solo esa ruta WebSocket utilizando el ejemplo de Collabora que coincide con la versión. Si la solicitud llega a Collabora pero se rechaza el host, el origen o el esquema, compare el nombre de host y el puerto públicos con el nombre del servidor configurado y los encabezados reenviados. Si el registro muestra un rechazo de host WOPI o una solicitud de información de archivo fallida, verifique el host permitido del servidor de integración y su accesibilidad desde el contenedor de Collabora; este es un paso independiente del protocolo de enlace WebSocket del navegador.

Recargue el proxy tras validar su configuración con el comando de comprobación de sintaxis propio del proxy. Evite modificar simultáneamente la terminación TLS, las listas de hosts permitidos y las reescrituras de URL: cambiar una causa por prueba permite interpretar el siguiente resultado. No desactive la verificación TLS ni permita todos los hosts WOPI como acceso directo.

4. Verifique la corrección del navegador al documento.

Vuelva a intentar con el mismo documento. En las Herramientas para desarrolladores, confirme que la solicitud WebSocket se completa 101 Switching Protocolsy permanece abierta. Confirme que el documento termina de cargarse, permanece conectado y acepta una pequeña edición que se guarda correctamente. Un estado de conexión correcto por sí solo no es suficiente si el acceso o el guardado de archivos WOPI siguen fallando.

Panel de red del navegador ilustrativo que muestra una solicitud WebSocket con estado 101 Switching Protocols y estado conectado.
Una respuesta 101 y una conexión abierta son las señales del lado del navegador que indican que el protocolo de enlace de WebSocket se ha realizado correctamente.

Si el protocolo de enlace sigue fallando, compare la ruta de la solicitud del navegador, la línea de acceso/error del proxy y la coolwsdentrada de registro correspondiente con la misma marca de tiempo. Esta comparación de tres puntos indica si el navegador, el proxy, la ruta de Collabora o el host WOPI son los siguientes puntos a investigar. Al solicitar ayuda, oculte los tokens de acceso, los identificadores de documentos, los nombres de usuario y los nombres de host privados tanto de los detalles del navegador como de los registros.

Dejar un comentario

Restablecer la conexión WebSocket de Collabora a través del proxy

Restablecer la conexión WebSocket de Collabora a través del proxy

Rastrea un error en el protocolo de enlace de socket desde el navegador hasta coolwsd, y luego compara la ruta del proxy inverso con tu versión de Collabora, incluyendo el cambio de Apache CODE 26.04.

Solucione los errores de WOPI Proof comprobando las claves, el descubrimiento y las URL.

Solucione los errores de WOPI Proof comprobando las claves, el descubrimiento y las URL.

Detecta fallos en la prueba WOPI de Collabora debidos a claves que no coinciden, datos de descubrimiento obsoletos, desfase horario o cambios en la URL del proxy, sin debilitar la validación.

Solucionar un problema con el menú desplegable de tamaño de fuente de Collabora Online.

Solucionar un problema con el menú desplegable de tamaño de fuente de Collabora Online.

Restablezca el zoom del navegador, pruebe una sesión limpia e identifique cuándo un menú de tamaño con formato incorrecto necesita una actualización del servidor de Collabora.

Conecta Nextcloud a un contenedor Collabora CODE autohospedado.

Conecta Nextcloud a un contenedor Collabora CODE autohospedado.

Implemente Collabora CODE con Docker, conéctelo de forma segura a Nextcloud Office y verifique la edición de documentos con comprobaciones prácticas de WOPI y proxy.

Rastrea los fallos de conexión de Collabora con los registros de coolwsd.

Rastrea los fallos de conexión de Collabora con los registros de coolwsd.

Activa temporalmente el modo de depuración de coolwsd, captura un intento de apertura fallido y utiliza la secuencia de registros para separar los problemas de WebSocket, WOPI, proxy y contenedor.

Establezca una contraseña segura para la consola de administración de Collabora.

Establezca una contraseña segura para la consola de administración de Collabora.

Configure el inicio de sesión de administrador de Collabora Online para Docker o Linux, reinicie el servicio correspondiente y verifique la nueva contraseña sin exponerla.

Diagnóstico de alto consumo de CPU desde coolwsd o loolwsd de Collabora.

Diagnóstico de alto consumo de CPU desde coolwsd o loolwsd de Collabora.

Antes de cambiar la configuración de Collabora o reiniciar el servicio, averigüe si la carga de la CPU proviene de documentos activos, procesos de trabajo inactivos o la capacidad del servidor.

Aumentar el límite de memoria del contenedor CODE sin adivinar

Aumentar el límite de memoria del contenedor CODE sin adivinar

Compruebe si Docker está limitando el límite de memoria de Collabora CODE, aumente de forma segura el límite de memoria de Compose y confirme que el contenedor en ejecución ha recibido el nuevo límite.

Personaliza las barras de herramientas de Collabora CODE sin editar el código fuente.

Personaliza las barras de herramientas de Collabora CODE sin editar el código fuente.

Simplifique Collabora CODE con el modo compacto o con pestañas y los controles WOPI PostMessage para ocultar de forma segura los botones, comandos y pestañas seleccionados.

Ejecuta Collabora CODE detrás de Nginx con terminación TLS.

Ejecuta Collabora CODE detrás de Nginx con terminación TLS.

Configurar Nginx para que se encargue del HTTPS en un contenedor Collabora CODE, reenviar correctamente la edición de WebSockets y verificar el punto final público sin exponer el puerto 9980.