Home
» Hoe
»
Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.
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.
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.
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.
Een backend health-check-verzoek retourneert HTTP 200 en true voordat de server aan HAProxy wordt toegevoegd.
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.
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.
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.
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.