Coloca ONLYOFFICE Docs detrás de HAProxy sin interrumpir la edición.

Ejecute ONLYOFFICE Docs detrás de HAProxy finalizando HTTPS en el proxy, reenviando el host y el esquema originales y permitiendo conexiones WebSocket de larga duración. Comience con un servidor de documentos en buen estado; agregue más servidores backend solo cuando su implementación de ONLYOFFICE esté configurada para admitir el funcionamiento en varios nodos, no simplemente porque HAProxy pueda distribuir las solicitudes.

¿Puede HAProxy equilibrar la carga entre dos servidores de documentos independientes?

HAProxy puede distribuir las solicitudes HTTP entre nodos, pero esto no convierte dos instalaciones independientes de ONLYOFFICE en un clúster de edición coordinado. Una sesión de edición mantiene conexiones persistentes y un estado de aplicación constante. El ejemplo oficial de ONLYOFFICE en modo activo-activo utiliza comprobaciones de estado del servidor y una cookie de persistencia; estos son mecanismos de enrutamiento, no sustituyen los servicios compartidos ni la arquitectura a nivel de aplicación que requiere su edición.

Para una instalación convencional de un solo servidor, utilice únicamente docs1el backend que se describe a continuación. Para dos nodos, primero confirme la arquitectura del clúster, la edición compatible, las dependencias compartidas, la compatibilidad de versiones y la configuración JWT con la documentación de implementación de ONLYOFFICE o el soporte del proveedor. Las direcciones de ejemplo — 10.0.10.21y 10.0.10.22— son direcciones IP privadas ilustrativas, no hosts detectados.

¿Qué debe estar funcionando antes de editar HAProxy?

El nombre público docs.example.comdebe resolverse en el punto final de HAProxy. HAProxy necesita los puertos TCP 80 y 443 de entrada y acceso a la red privada de cada servidor de documentos en el puerto 80. Su aplicación de gestión documental también debe poder acceder a la dirección pública de Docs, mientras que ONLYOFFICE debe poder recuperar documentos y enviar devoluciones de llamada a la aplicación. Mantenga la conexión HTTP del backend privada; cifre el salto del backend por separado si atraviesa una red no confiable.

  1. Compruebe cada servidor de documentos desde el host proxy. Ejecute curl -i http://10.0.10.21/healthchecky, si está presente, curl -i http://10.0.10.22/healthcheck. Un punto final de estado operativo normalmente devuelve HTTP 200 con un cuerpo de true. Investigue el enrutamiento, los firewalls o el estado del servidor antes de configurar el balanceo si alguno falla.
  2. Confirme un secreto JWT fijo. El servidor de documentos y su conector deben coincidir en el secreto del token. Para instalaciones de Docker, ONLYOFFICE documenta la JWT_SECRETvariable de entorno; desde Docs 7.2, depender de un secreto generado automáticamente puede provocar fallos de integración tras su recreación o reinicio. En implementaciones multinodo compatibles, alinee los secretos entre los nodos según la arquitectura del proveedor.
La terminal comprueba http://10.0.10.21/healthcheck y muestra HTTP 200 con true en el cuerpo de la respuesta.
Una solicitud de verificación de estado del backend devuelve HTTP 200 y true antes de que el servidor se agregue a HAProxy.

Estas comprobaciones siguen las instrucciones de instalación de Docker y de configuración de JWT del proveedor . No desactive JWT simplemente para solucionar un error de proxy.

¿Cómo se configura HTTPS y se reenvían las cabeceras correctas?

Paso 1: Preparar el certificado

Obtenga un certificado de confianza que cubra docs.example.com. En este ejemplo de Linux, HAProxy lee un archivo PEM que contiene la cadena de certificados seguida de la clave privada. Si ya existen certificados en otro lugar, sustituya esas rutas. Restrinja el acceso al archivo PEM combinado y configure su reconstrucción cuando se renueve el certificado.

sudo install -d -m 700 /etc/haproxy/certs
sudo sh -c 'umask 077; cat /etc/letsencrypt/live/docs.example.com/fullchain.pem /etc/letsencrypt/live/docs.example.com/privkey.pem > /etc/haproxy/certs/docs.example.com.pem'
Terminal de Ubuntu que muestra el directorio del certificado, el archivo PEM docs.example.com y los permisos de archivo restringidos.
El certificado y la clave privada se colocan en un archivo PEM protegido para el receptor HTTPS.

Paso 2: Añadir el frontend y el backend

Realice una copia de seguridad de su configuración actual /etc/haproxy/haproxy.cfgy adapte las siguientes secciones en lugar de reemplazar sin más la configuración de registro o de servicio específica de la distribución. Esta es una configuración ilustrativa para las versiones modernas de HAProxy. Solo acepta HTTP para la redirección, finaliza HTTPS en el puerto 443, reenvía el host público y el esquema, y ​​supervisa el punto final de estado de la aplicación.

global
    log /dev/log local0

defaults
    mode http
    log global
    option httplog
    option forwardfor
    timeout connect 5s
    timeout client 60s
    timeout server 60s
    timeout tunnel 1h

frontend docs_http
    bind :80
    http-request redirect scheme https code 301

frontend docs_https
    bind :443 ssl crt /etc/haproxy/certs/docs.example.com.pem
    http-request set-header X-Forwarded-Proto https
    http-request set-header X-Forwarded-Host %[req.hdr(Host)]
    default_backend docs_nodes

backend docs_nodes
    option http-server-close
    balance roundrobin
    cookie SERVERID insert indirect nocache
    option httpchk GET /healthcheck
    http-check expect string true
    server docs1 10.0.10.21:80 check cookie docs1
    server docs2 10.0.10.22:80 check cookie docs2
Editor de configuración de HAProxy que muestra una interfaz TLS y dos direcciones de servidor de documentos privadas.
La configuración de HAProxy separa su oyente TLS público de los backends internos del servidor de documentos; utilice las directivas completas que se muestran arriba.

Elimine la docs2línea a menos que el segundo nodo esté realmente listo. La cookie de persistencia ayuda a que las solicitudes HTTP posteriores regresen al nodo seleccionado. HAProxy gestiona una actualización de HTTP WebSocket sin una reescritura de URL especial; timeout tunnel 1hpermite que las conexiones actualizadas inactivas permanezcan abiertas durante más tiempo que las solicitudes normales. La documentación de HAProxy WebSocket explica este comportamiento.

X-Forwarded-ProtoLa configuración httpses correcta aquí porque este frontend termina HTTPS público. No confíe en un esquema de reenvío arbitrario proporcionado por el cliente ni en un host en el borde de la red con acceso a Internet. La documentación del proxy ONLYOFFICE exige específicamente que X-Forwarded-Protose X-Forwarded-Hostconserve el contexto de la URL externa.

¿Cómo se debe recargar y probar el balanceador de carga?

Paso 3: Validar antes de cambiar el tráfico

Compruebe la sintaxis antes de recargar. Un código de salida distinto de cero significa que debe resolver el error de configuración o certificado notificado antes de continuar:

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy
curl -i https://docs.example.com/healthcheck
Terminal que muestra el comando de validación de configuración de HAProxy y un mensaje de configuración válida.
Valide el archivo haproxy.cfg antes de recargar el servicio; la validación de sintaxis correcta no sustituye a las pruebas de edición.

La respuesta pública de la comprobación de estado debería mostrar HTTP 200 truecuando un servidor backend esté en buen estado. HAProxy utiliza las directivas option httpchky http-check expectpara eliminar los nodos con fallos de la rotación de nuevas solicitudes; consulte su referencia de comprobación de estado . Una comprobación superada no demuestra que la edición de documentos o la entrega de devoluciones de llamada funcionen correctamente.

Paso 4: Confirmar la edición, WebSockets y guardar.

Abra un documento a través de su aplicación integrada, como un sistema de gestión documental conectado a ONLYOFFICE Docs. En las herramientas para desarrolladores del navegador, utilice el panel Red para inspeccionar la conexión WebSocket: el protocolo de enlace de actualización debería completarse correctamente, generalmente con el estado HTTP 101 Switching Protocols. Realice una pequeña edición, cierre el editor, vuelva a abrir el documento y confirme que el cambio se guardó. Para una implementación de dos nodos compatible, pruebe también un segundo colaborador y un vaciado planificado de un solo nodo durante una ventana de mantenimiento.

Si la comprobación de salud pública funciona, pero el editor se bloquea o se desconecta, revise las advertencias de contenido mixto, los fallos de WebSocket, las discrepancias de JWT y si la aplicación de documentos puede acceder a la URL de Docs anunciada. Si un documento se abre pero no se guarda, investigue la accesibilidad de la devolución de llamada desde el servidor de documentos a la aplicación de origen en lugar de cambiar la política de round-robin de HAProxy. Una sesión activa de WebSocket interrumpida aún puede requerir la reconexión del cliente; las comprobaciones de salud del servidor no garantizan una conmutación por error de edición sin interrupciones.

Verificación final: tanto el punto final de salud pública como una prueba real de edición y reapertura deben ser satisfactorios. Mantenga solo nodos verificados y compatibles en rotación, confirme que la renovación del certificado recarga el PEM correcto y supervise los registros de HAProxy para detectar respuestas repetidas 502/503 o desconexiones inesperadas de WebSocket.

Dejar un comentario

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Configure Nextcloud para que elimine los archivos borrados después de un período de retención definido, programe tareas en segundo plano de forma fiable y evite comandos que vacíen la papelera de todos los usuarios.

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Ejecuta la reparación de OCC de Nextcloud de forma segura, previsualiza los cambios en la base de datos y comprueba por qué persiste la advertencia.

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Permita la carga de archivos más grandes en el navegador Nextcloud alineando la configuración de PHP, Nginx o Apache, el almacenamiento temporal y el tiempo de espera, y verifique qué límite está bloqueando el archivo.

Borre la advertencia de memoria PHP de Nextcloud en el servidor web.

Establezca el límite de memoria PHP que Nextcloud utiliza realmente, reinicie el servicio correcto y confirme la configuración de 512 MB en la Vista general de administración.

Conecta un bucket compatible con S3 al almacenamiento externo de Nextcloud.

Monta un bucket de almacenamiento de objetos compatible en Nextcloud utilizando su backend S3, con el punto final, las credenciales, el ámbito de acceso y los pasos de verificación correctos.

Traslada tus datos de Nextcloud a una unidad externa sin perder espacio de almacenamiento.

Traslada tus datos de Nextcloud a una unidad externa sin perder espacio de almacenamiento.

Traslada de forma segura un directorio de datos de Linux Nextcloud a una unidad externa utilizando un montaje UUID persistente, el modo de mantenimiento, una copia verificada y el enlace simbólico de la ruta original.

Error de la base de datos de Nextcloud después de una actualización: qué comprobar primero

Restaure el acceso a Nextcloud después de una actualización diagnosticando errores SQL, comprobando la conectividad de la base de datos y completando de forma segura las migraciones interrumpidas.

Restablecer una contraseña de administrador de Nextcloud perdida con OCC

Utilice el comando OCC de Nextcloud para restablecer la contraseña de administrador desde la consola del servidor, con instrucciones sobre nombres de usuario, permisos y proveedores de inicio de sesión externos.

Agregue el encabezado HSTS en el punto final HTTPS que sirve a Nextcloud.

Elimine la advertencia HSTS de Nextcloud configurando el encabezado en Apache, NGINX o su proxy TLS, y luego verifique la respuesta HTTPS pública de forma segura.

Solucionar problemas de instalación de la aplicación Nextcloud que reportan falta de conexión a Internet

Solucionar problemas de instalación de la aplicación Nextcloud que reportan falta de conexión a Internet

Identificar los fallos de instalación de la App Store y determinar si se deben a problemas de DNS, HTTPS, proxy, TLS o configuración del propio servidor Nextcloud.