Inicio
» Cómo
»
Rastrea el origen para solucionar el error 502 de Nginx de ONLYOFFICE.
Rastrea el origen para solucionar el error 502 de Nginx de ONLYOFFICE.
Comience por verificar la conexión entre Nginx y ONLYOFFICE Docs, y luego lea el registro de errores correspondiente a la respuesta 502. Un error 502 Bad Gateway significa que una puerta de enlace no pudo obtener una respuesta válida de su servidor ascendente; esto no prueba, por sí solo, que la configuración pública de Nginx sea la causa. En Docker, la solución habitual es redirigir Nginx al nombre del servicio del servidor de documentos en su puerto interno 80 y asegurarse de que ambos contenedores compartan la red.
¿Qué debes comprobar antes de editar Nginx?
Un proxy inverso es un servidor que recibe una solicitud de un cliente y la reenvía a otro servidor. En una implementación común, Nginx público gestiona HTTPS y reenvía las solicitudes a ONLYOFFICE Docs a través de HTTP. ONLYOFFICE Docs también ejecuta su propio Nginx internamente, por lo que una página 502 puede ser generada por el proxy externo o por el propio contenedor del servidor de documentos.
Primero, identifique qué servidor emitió la respuesta. Compare el encabezado del servidor y la marca de tiempo de la página con el registro del proxy externo y los registros del servidor de documentos. Para una configuración de Docker, verifique el estado del contenedor y los mensajes de inicio recientes:
El estado de Docker es la primera comprobación: confirme que el contenedor ONLYOFFICE está en funcionamiento antes de rastrear el enrutamiento de Nginx.
Si el contenedor se está reiniciando o acaba de iniciarse, inspeccione el registro antes de cambiar la configuración del proxy. ONLYOFFICE indica que el primer inicio puede tardar uno o dos minutos mientras se inicializa su base de datos. Para una instalación nativa de Linux, compruebe ds-docservicey ds-convertercon systemctl status; los registros del servidor de documentos se encuentran en /var/log/onlyoffice/documentserver/.
¿Puede Nginx alcanzar el servidor de documentos en la ruta ascendente?
Realice las pruebas desde el contenedor o el host de Nginx, no solo desde su portátil. Los contenedores en redes Docker separadas no pueden resolverse entre sí mediante el nombre del servicio, incluso cuando ambos están en ejecución. Cuando Nginx y ONLYOFFICE comparten una red Docker definida por el usuario, utilice el nombre del servicio de Compose o un nombre de contenedor que se pueda resolver y el puerto de escucha del contenedor. La guía oficial de instalación de Docker identifica el puerto 80 como el puerto de escucha predeterminado del servidor de documentos; un puerto de host publicado, como 8080:80, no cambia el puerto interno.
Desde el contenedor proxy, ejecute:
curl -I http://onlyoffice-documentserver:80/
Una respuesta 200 de la red proxy confirma que el nombre y el puerto del servidor de origen son accesibles.
Reemplaza onlyoffice-documentservercon el nombre real de tu servicio Compose. Si la solicitud dice "No se pudo resolver el host", conecta ambos contenedores a la misma red Docker o corrige el nombre del servidor ascendente. "Conexión rechazada" generalmente significa que el host de destino se resolvió, pero nada acepta conexiones en ese puerto, el contenedor no está listo o se usó el puerto incorrecto. Si se trata de una instalación nativa, prueba la dirección local y el puerto configurado, por ejemplo curl -I http://127.0.0.1/.
La guía de Docker de ONLYOFFICE cubre el puerto predeterminado, las asignaciones de puertos, el retraso de inicio y los registros de contenedores: Instalación y verificación de Docker .
¿Cómo se corrige el destino del proxy Nginx?
En el host virtual HTTPS para el nombre de host ONLYOFFICE, asegúrese de proxy_passque apunte al servidor ascendente accesible. Este ejemplo asume una red Docker compartida y el nombre de servicio que se muestra arriba; cámbielo para que coincida con su implementación.
El destino del proxy apunta al nombre del servicio del contenedor y a su puerto interno, no a un puerto de host no relacionado.
No apunte un proxy en contenedores a 127.0.0.1:8080menos que el servidor de documentos esté escuchando en el mismo contenedor o que la dirección del host esté configurada intencionalmente y sea accesible. Dentro de un contenedor, 127.0.0.1se refiere al propio contenedor. Evite también enviar HTTPS al servidor de origen cuando el punto final del servidor de documentos sea HTTP simple.
El protocolo y el host reenviados le indican a ONLYOFFICE qué URL pública usó el cliente, y los encabezados de actualización permiten conexiones WebSocket para la comunicación con el editor en tiempo real. ONLYOFFICE proporciona ejemplos actualizados para ejecutar Docs detrás de un proxy , incluyendo su configuración de HTTPS a HTTP para Nginx . Compare con ese ejemplo completo si su entorno tiene varios saltos de proxy o usa un prefijo de ruta de URL.
Antes de aplicar los cambios, valide la configuración con nginx -t, y luego reinicie Nginx utilizando el método correspondiente a su host o contenedor. No reinicie todos los servicios a la vez; una recarga controlada facilita comprobar si la corrección original modificó el resultado.
¿Qué ocurre si ONLYOFFICE sigue devolviendo un error 502?
Si el proxy externo puede acceder a la página de bienvenida del servidor de documentos pero /healthcheckdevuelve un error 502, el problema podría estar dentro del servidor de documentos y no en el servidor Nginx público. Revise los registros del contenedor del servidor de documentos y los registros internos del servicio. Para instalaciones nativas de Linux, revise los comandos de estado del servicio y el directorio de registros mencionado anteriormente. Si /welcome/responde, pero la comprobación de estado no, considérelo como señales independientes: una página de bienvenida estática no demuestra que el servicio de documentos y sus dependencias funcionen correctamente.
No intente solucionar esto desactivando JWT. La validación de JSON Web Token (JWT) autentica las solicitudes de integración; una discrepancia en el JWT suele provocar un error de autorización, no una imposibilidad de conexión a nivel de red con el servidor de origen. Compruebe la configuración de JWT solo si el proxy responde, pero la integración informa de un error de autorización o de token.
Finalmente, confirme que Nginx está enrutando el nombre de host correcto al host virtual correcto. Un error tipográfico en server_name, el nombre DNS ascendente o el puerto puede enviar el tráfico a otro lugar o dejar el proxy usando una configuración obsoleta. Revise el registro de errores de Nginx en busca de líneas como host not found in upstream, connect() failed, o upstream timed out; cada una apunta a una capa diferente.
¿Cómo se verifica la solución?
Vuelva a probar la conexión ascendente desde la red proxy, luego verifique el punto final de salud pública y abra un documento a través de la plataforma conectada:
curl -I https://docs.example.com/healthcheck
Una respuesta satisfactoria a la comprobación de salud pública confirma que la solicitud pasa a través de Nginx hasta el servidor de documentos.
Una comprobación de estado exitosa ya no debería mostrar un error 502, y el documento debería abrirse y permanecer conectado durante la edición. Si la prueba de origen es exitosa pero la solicitud pública sigue fallando, concéntrese en el host virtual Nginx seleccionado, su configuración cargada y sus registros. Si la página de bienvenida pública funciona pero la comprobación de estado sigue mostrando un error 502, continúe con el diagnóstico del servicio interno de ONLYOFFICE.
Para conocer el comportamiento de las directivas de Nginx, consulte la documentación oficial del módulo proxy de Nginx . Los comandos y nombres de servicio exactos pueden variar según el proyecto de Docker Compose, la distribución de Linux y la versión de ONLYOFFICE, así que sustituya los nombres reales y revise los registros del componente que generó la respuesta.