Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.

Gebruik ONLYOFFICE Docs achter HAProxy door HTTPS bij de proxy te beëindigen, de oorspronkelijke host en het schema door te sturen en langdurige WebSocket-verbindingen toe te staan. Begin met één goed functionerende documentenserver; voeg pas meer backends toe wanneer uw ONLYOFFICE-implementatie is geconfigureerd voor ondersteuning van meerdere knooppunten, en niet alleen omdat HAProxy verzoeken kan verdelen.

Kan HAProxy de belasting van twee onafhankelijke documentservers verdelen?

HAProxy kan HTTP-verzoeken verdelen over knooppunten, maar dat maakt van twee op zichzelf staande ONLYOFFICE-installaties nog geen gecoördineerd bewerkingscluster. Een editorsessie heeft persistente verbindingen en applicatiestatus. Het officiële ONLYOFFICE active-active-voorbeeld gebruikt backend-healthchecks en een persistentiecookie; dit zijn routeringsmechanismen, geen vervanging voor de gedeelde services en de architectuur op applicatieniveau die uw editie vereist.

Voor een conventionele installatie met één server, gebruik dit alleen docs1in de onderstaande backend. Voor twee nodes dient u eerst de clusterarchitectuur, de ondersteunde editie, gedeelde afhankelijkheden, versiecompatibiliteit en JWT-configuratie te controleren met uw ONLYOFFICE-implementatiedocumentatie of de ondersteuning van uw leverancier. De voorbeeldadressen — 10.0.10.21en 10.0.10.22— zijn illustratieve privé-IP-adressen, geen gevonden hosts.

Wat moet er werken voordat je HAProxy gaat bewerken?

De publieke naam docs.example.commoet verwijzen naar uw HAProxy-eindpunt. HAProxy heeft inkomende TCP-poorten 80 en 443 nodig, evenals toegang tot een privénetwerk voor elke documentenserver op poort 80. Uw documentbeheerapplicatie moet ook het publieke Docs-adres kunnen bereiken, terwijl ONLYOFFICE documenten moet kunnen ophalen en callbacks naar de applicatie moet kunnen verzenden. Houd de backend HTTP privé; versleutel de backend-hop afzonderlijk als deze een onbetrouwbaar netwerk doorkruist.

  1. Controleer elke documentserver vanaf de proxyhost. Voer de volgende commando's uit curl -i http://10.0.10.21/healthchecken, indien aanwezig, controleer curl -i http://10.0.10.22/healthcheckde status. Een operationeel status-eindpunt retourneert normaal gesproken HTTP 200 met een body van true. Onderzoek de routering, firewalls of de serverstatus voordat u load balancing configureert als een van deze problemen zich voordoet.
  2. Bevestig een vast JWT-geheim. De documentenserver en de connector moeten het eens zijn over het tokengeheim. Voor Docker-installaties documenteert ONLYOFFICE de JWT_SECRETomgevingsvariabele; sinds Docs 7.2 kan het gebruik van een automatisch gegenereerd geheim integratieproblemen veroorzaken na het opnieuw aanmaken of herstarten van de server. In ondersteunde multi-node-implementaties moeten geheimen over de nodes worden afgestemd op de architectuur van de leverancier.
Terminal controleert http://10.0.10.21/healthcheck en toont HTTP 200 met 'true' in de responsbody.
Een backend health-check-verzoek retourneert HTTP 200 en true voordat de server aan HAProxy wordt toegevoegd.

Deze controles volgen de installatiehandleiding voor Docker en de configuratie-instructies voor JWT van de leverancier . Schakel JWT niet uit om een ​​proxyfout te omzeilen.

Hoe configureer je HTTPS en stuur je de juiste headers door?

Stap 1: Het certificaat voorbereiden

Verkrijg een vertrouwd certificaat dat de certificatenketen dekt docs.example.com. ​​In dit Linux-voorbeeld leest HAProxy een PEM-bestand met de certificaatketen en de privésleutel. Als er al certificaten elders bestaan, vervang dan de paden. Beperk de toegang tot het gecombineerde PEM-bestand en zorg ervoor dat het opnieuw wordt opgebouwd wanneer het certificaat wordt vernieuwd.

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'
Ubuntu-terminal met de certificaatmap, het PEM-bestand docs.example.com en beperkte bestandsrechten.
Het certificaat en de privésleutel worden in een beveiligd PEM-bestand geplaatst voor de HTTPS-listener.

Stap 2: Voeg de frontend en backend toe

Maak een back-up van uw bestaande configuratie /etc/haproxy/haproxy.cfgen pas de volgende secties aan in plaats van blindelings distributiespecifieke logboekregistratie- of service-instellingen te vervangen. Dit is een voorbeeldconfiguratie voor moderne HAProxy-releases. Het accepteert alleen HTTP voor omleiding, beëindigt HTTPS op poort 443, stuurt de openbare host en het schema door en bewaakt het applicatiestatus-eindpunt.

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
De HAProxy-configuratie-editor toont een TLS-frontend en twee privé-documentserver-backendadressen.
De HAProxy-configuratie scheidt de openbare TLS-listener van de interne documentserver-backends; gebruik hiervoor de volledige instructies zoals hierboven weergegeven.

Verwijder de docs2regel tenzij het tweede knooppunt daadwerkelijk gereed is. De persistentiecookie zorgt ervoor dat volgende HTTP-verzoeken terugkeren naar het geselecteerde knooppunt. HAProxy verwerkt een HTTP WebSocket-upgrade zonder een speciale URL-herschrijving; timeout tunnel 1hhierdoor kunnen inactieve, geüpgrade verbindingen langer open blijven dan bij gewone verzoeken. De HAProxy WebSocket-documentatie legt dit gedrag uit.

X-Forwarded-ProtoDe instelling httpsis hier correct omdat deze frontend openbare HTTPS beëindigt. Vertrouw niet op een willekeurig door de client aangeleverd doorstuurschema of host aan de rand van het internet. De ONLYOFFICE-proxydocumentatie schrijft specifiek voor X-Forwarded-Protodat X-Forwarded-Hostde externe URL-context behouden moet blijven.

Hoe moet je de load balancer herladen en testen?

Stap 3: Valideer voordat u het verkeer omschakelt.

Controleer de syntaxis voordat u opnieuw laadt. Een exitstatus die niet nul is, betekent dat u de gemelde configuratie- of certificaatfout moet oplossen voordat u verder kunt gaan.

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy
curl -i https://docs.example.com/healthcheck
De terminal toont de HAProxy-configuratievalidatieopdracht en een bericht dat de configuratie geldig is.
Controleer het haproxy.cfg-bestand vóór het herladen van de service; een succesvolle syntaxcontrole is geen vervanging voor het uitvoeren van tests.

De reactie van de openbare gezondheidscontrole moet HTTP 200 tonen truewanneer een backend gezond is. HAProxy gebruikt de ` requirements` option httpchken ` http-check expectrequirements` richtlijnen om falende knooppunten uit de rotatie van nieuwe verzoeken te verwijderen; zie de referentie voor gezondheidscontroles . Een geslaagde controle bewijst niet dat documentbewerking of callback-afhandeling werkt.

Stap 4: Bevestig het bewerken, de WebSockets en het opslaan.

Open een document via uw geïntegreerde applicatie, zoals een documentbeheersysteem dat is gekoppeld aan ONLYOFFICE Docs. Gebruik in de ontwikkelaarstools van uw browser het paneel Netwerk om de WebSocket-verbinding te inspecteren: de upgrade-handshake zou moeten slagen, meestal met HTTP-statuscode 101 Switching Protocols. Voer een kleine wijziging door, sluit de editor, open het document opnieuw en controleer of de wijziging is opgeslagen. Test voor een correct ondersteunde implementatie met twee knooppunten ook een tweede samenwerkingspartner en een geplande uitschakeling van één knooppunt tijdens een onderhoudsvenster.

Als de gezondheidscontrole van de pagina werkt, maar de editor vastloopt of de verbinding verbreekt, controleer dan waarschuwingen voor gemengde inhoud, WebSocket-fouten, JWT-mismatches en of de documenttoepassing de geadverteerde Docs-URL kan bereiken. Als een document wel opent maar niet wordt opgeslagen, onderzoek dan de bereikbaarheid van de callback van de documentserver naar de brontoepassing in plaats van het round-robin-beleid van HAProxy te wijzigen. Een onderbroken actieve WebSocket-sessie kan nog steeds een herverbinding van de client vereisen; gezondheidscontroles van de backend garanderen geen naadloze failover voor bewerkingen.

Eindcontrole: zowel het eindpunt voor de volksgezondheid als een daadwerkelijke test met bewerken en heropenen moeten slagen. Houd alleen geverifieerde, ondersteunde knooppunten in rotatie, controleer of de certificaatvernieuwing de juiste PEM opnieuw laadt en monitor de HAProxy-logboeken op herhaalde 502/503-reacties of onverwachte WebSocket-verbindingen die worden verbroken.

Laat een reactie achter

Synchroniseer Active Directory-gebruikers met ONLYOFFICE DocSpace via LDAP.

Synchroniseer Active Directory-gebruikers met ONLYOFFICE DocSpace via LDAP.

Verbind ONLYOFFICE DocSpace met Active Directory of OpenLDAP, importeer gebruikers en groepen veilig, koppel accountvelden en plan betrouwbare synchronisatie.

Automatiseer consistente Nextcloud-backups met Restic en Cron.

Automatiseer consistente Nextcloud-backups met Restic en Cron.

Maak een back-up van Nextcloud-bestanden en MariaDB, plan versleutelde Restic-snapshots met cron en controleer het herstel zonder de live server in gevaar te brengen.

Een Zimbra CE-mailbox back-uppen en herstellen met behulp van TGZ-exports.

Een Zimbra CE-mailbox back-uppen en herstellen met behulp van TGZ-exports.

Exporteer een individuele Zimbra Community Edition-mailbox, valideer de TGZ-back-up ervan en herstel ontbrekende items zonder bestaande e-mails te overschrijven.

Debian 12 op een VPS met weinig RAM: Hoe MySQL OOM-crashes te verminderen

Debian 12 op een VPS met weinig RAM: Hoe MySQL OOM-crashes te verminderen

Diagnoseer MySQL OOM-kills op Debian 12, controleer de geheugenlimieten van de VPS, configureer swap en optimaliseer het databasegeheugen en de gelijktijdigheid, zonder een universele oplossing te beloven.

Sta geautoriseerde gebruikers toe om Jitsi-rooms aan te maken met Keycloak-aanmelding.

Sta geautoriseerde gebruikers toe om Jitsi-rooms aan te maken met Keycloak-aanmelding.

Sta alleen goedgekeurde accounts toe om Jitsi Meet-rooms te starten met Keycloak en tokenverificatie, terwijl de mogelijkheid voor gasten om deel te nemen beschikbaar blijft wanneer nodig.

Hoe koppel je automatisch een externe SSHFS-directory bij het opstarten in Debian?

Hoe koppel je automatisch een externe SSHFS-directory bij het opstarten in Debian?

Configureer een SSHFS-opstartmount in Debian met SSH-sleutels, fstab en systemd automount. Inclusief controles op herstarten, machtigingen, time-outs en probleemoplossing.

Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.

Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.

Configureer HAProxy HTTPS, het doorsturen van headers, WebSocket-time-outs en health checks voor ONLYOFFICE Docs en controleer vervolgens of het bewerken en opslaan werkt.

Lettertypen toevoegen aan ONLYOFFICE Document Server: Docker versus Linux

Lettertypen toevoegen aan ONLYOFFICE Document Server: Docker versus Linux

Installeer aangepaste lettertypen in ONLYOFFICE Document Server, vergelijk permanente Docker-koppelingen met directe kopieën, herbouw de lettertypenlijst en controleer het resultaat.

Aangepaste kernelmodules installeren en ondertekenen op SLES 15 Secure Boot

Aangepaste kernelmodules installeren en ondertekenen op SLES 15 Secure Boot

Laad een aangepaste SLES 15-kernelmodule zonder Secure Boot uit te schakelen. Stem de module af op de actieve kernel, onderteken het .ko-bestand, registreer een MOK-sleutel en verifieer het laden.

Beveiligde SLES Syslog-doorsturing met rsyslog en Mutual TLS

Beveiligde SLES Syslog-doorsturing met rsyslog en Mutual TLS

Verzend SLES-systeemlogboeken naar een externe rsyslog-collector via geauthenticeerde TLS, met certificaatcontroles, buffering bij storingen en afleveringstests.