Strona główna
» Jak
»
Umieść dokumenty ONLYOFFICE w HAProxy bez przerywania edycji
Umieść dokumenty ONLYOFFICE w HAProxy bez przerywania edycji
Uruchom ONLYOFFICE Docs za pomocą HAProxy, kończąc HTTPS na serwerze proxy, przekazując oryginalny host i schemat oraz zezwalając na długotrwałe połączenia WebSocket. Zacznij od jednego sprawnego serwera dokumentów; dodawaj kolejne zaplecza tylko wtedy, gdy wdrożenie ONLYOFFICE jest skonfigurowane do obsługi wielu węzłów, a nie tylko dlatego, że HAProxy może dystrybuować żądania.
Czy HAProxy może zrównoważyć obciążenie dwóch niezależnych serwerów dokumentów?
HAProxy może dystrybuować żądania HTTP między węzłami, ale to nie czyni z dwóch niezależnych instalacji ONLYOFFICE skoordynowanego klastra edycyjnego. Sesja edytora ma trwałe połączenia i stan aplikacji. Oficjalny przykład ONLYOFFICE w trybie aktywny-aktywny korzysta z kontroli stanu zaplecza i trwałego pliku cookie; są to mechanizmy routingu, a nie zamienniki usług współdzielonych i architektury na poziomie aplikacji wymagane przez daną edycję.
W przypadku konwencjonalnej instalacji na jednym serwerze należy używać tylko docs1poniższego zaplecza. W przypadku dwóch węzłów należy najpierw sprawdzić architekturę klastra, obsługiwaną edycję, współużytkowane zależności, zgodność wersji oraz konfigurację JWT w dokumentacji wdrożenia ONLYOFFICE lub pomocy technicznej dostawcy. Przykładowe adresy — 10.0.10.21i 10.0.10.22— to przykładowe prywatne adresy IP, a nie wykryte hosty.
Co musi działać zanim zaczniesz edytować HAProxy?
Nazwa publiczna docs.example.compowinna być rozwiązana na punkt końcowy HAProxy. HAProxy wymaga portów TCP 80 i 443 dla ruchu przychodzącego oraz dostępu do każdego serwera dokumentów w sieci prywatnej na porcie 80. Aplikacja do zarządzania dokumentami musi również mieć dostęp do publicznego adresu Docs, a ONLYOFFICE musi mieć możliwość pobierania dokumentów i wysyłania wywołań zwrotnych do aplikacji. Zachowaj prywatność protokołu HTTP w zapleczu; szyfruj przeskok w zapleczu osobno, jeśli przechodzi on przez niezaufaną sieć.
Sprawdź każdy serwer dokumentów z hosta proxy. Uruchom curl -i http://10.0.10.21/healthchecki, jeśli jest obecny, curl -i http://10.0.10.22/healthcheck. Punkt końcowy stanu operacyjnego zazwyczaj zwraca HTTP 200 z treścią true. Sprawdź routing, zapory sieciowe lub stan serwera przed skonfigurowaniem równoważenia, jeśli którykolwiek z nich zawiedzie.
Potwierdź stały sekret JWT. Serwer dokumentów i jego łącznik muszą być zgodne co do sekretu tokena. W przypadku instalacji Dockera, ONLYOFFICE dokumentuje JWT_SECRETzmienną środowiskową; od wersji Docs 7.2, poleganie na automatycznie generowanym kluczu tajnym może powodować błędy integracji po odtworzeniu lub ponownym uruchomieniu. W obsługiwanych wdrożeniach wielowęzłowych, należy wyrównać klucze tajne między węzłami zgodnie z architekturą dostawcy.
Żądanie kontroli stanu zaplecza zwraca kod HTTP 200 i wartość true przed dodaniem serwera do HAProxy.
Te kontrole są zgodne z instrukcjami dostawcy dotyczącymi instalacji Dockera i konfiguracji JWT . Nie należy wyłączać JWT tylko po to, aby obejść błąd serwera proxy.
Jak skonfigurować protokół HTTPS i przekazywać prawidłowe nagłówki?
Krok 1: Przygotuj certyfikat
Uzyskaj zaufany certyfikat obejmujący docs.example.com. W tym przykładzie dla Linuksa, HAProxy odczytuje plik PEM zawierający łańcuch certyfikatów, a następnie klucz prywatny. Jeśli certyfikaty istnieją już gdzie indziej, zastąp je ścieżkami. Ogranicz dostęp do połączonego pliku PEM i zorganizuj jego odbudowę po odnowieniu certyfikatu.
Certyfikat i klucz prywatny umieszczane są w chronionym pliku PEM dla programu nasłuchującego HTTPS.
Krok 2: Dodaj front-end i back-end
Zamiast bezmyślnie zastępować ustawienia logowania lub usługi specyficzne dla dystrybucji, utwórz kopię zapasową istniejących /etc/haproxy/haproxy.cfgi dostosuj poniższe sekcje. To przykładowa konfiguracja dla nowoczesnych wersji HAProxy. Akceptuje ona tylko HTTP do przekierowania, kończy HTTPS na porcie 443, przekazuje publiczny host i schemat oraz monitoruje punkt końcowy kondycji aplikacji.
Konfiguracja HAProxy oddziela publiczny program nasłuchujący TLS od wewnętrznych zapleczy serwera dokumentów; należy użyć pełnych dyrektyw pokazanych powyżej.
Usuń docs2wiersz, chyba że drugi węzeł jest rzeczywiście gotowy. Plik cookie trwałości pomaga kolejnym żądaniom HTTP powrócić do wybranego węzła. HAProxy obsługuje aktualizację HTTP WebSocket bez specjalnego przepisywania adresu URL; timeout tunnel 1hpozwala, aby bezczynne, zaktualizowane połączenia pozostawały otwarte dłużej niż zwykłe żądania. Dokumentacja HAProxy WebSocket wyjaśnia to zachowanie.
Ustawienie X-Forwarded-Protojest httpstutaj poprawne, ponieważ ten front-end kończy publiczny protokół HTTPS. Nie należy ufać dowolnemu schematowi przekierowania ani hostowi dostarczonemu przez klienta na krawędzi dostępu do Internetu. Dokumentacja serwera proxy ONLYOFFICE wyraźnie wymaga X-Forwarded-Protoi X-Forwarded-Hostzachowuje zewnętrzny kontekst adresu URL.
Jak należy przeładować i przetestować moduł równoważenia obciążenia?
Krok 3: Zweryfikuj przed przełączeniem ruchu
Sprawdź składnię przed ponownym załadowaniem. Kod wyjścia różny od zera oznacza, że przed kontynuacją należy rozwiązać zgłoszony błąd konfiguracji lub certyfikatu:
Przed ponownym załadowaniem usługi sprawdź poprawność pliku haproxy.cfg; pomyślna walidacja składni nie zastępuje edycji testów.
Publiczna odpowiedź na kontrolę stanu powinna wskazywać HTTP 200 oraz trueinformację, że zaplecze jest sprawne. HAProxy używa dyrektyw option httpchki http-check expectdo usuwania wadliwych węzłów z rotacji nowych żądań; patrz odnośnik do kontroli stanu . Pozytywny wynik kontroli nie dowodzi, że edycja dokumentów lub dostarczanie wywołań zwrotnych działa.
Krok 4: Potwierdź edycję, WebSockets i zapisanie
Otwórz dokument za pośrednictwem zintegrowanej aplikacji, takiej jak system zarządzania dokumentami połączony z ONLYOFFICE Docs. W narzędziach programistycznych przeglądarki użyj panelu Sieć, aby sprawdzić połączenie WebSocket: uzgadnianie aktualizacji powinno zakończyć się pomyślnie, zazwyczaj ze statusem HTTP 101 Switching Protocols. Wprowadź niewielką edycję, zamknij edytor, ponownie otwórz dokument i upewnij się, że zmiana została zapisana. Aby zapewnić prawidłowe wdrożenie dwuwęzłowe, przetestuj również drugiego współpracownika i zaplanowane opróżnienie pojedynczego węzła podczas przerwy konserwacyjnej.
Jeśli publiczna kontrola poprawności działania działa, ale edytor się zawiesza lub rozłącza, sprawdź ostrzeżenia dotyczące mieszanej zawartości, błędy WebSocket, niezgodności JWT oraz to, czy aplikacja dokumentu może dotrzeć do reklamowanego adresu URL Dokumentów. Jeśli dokument otwiera się, ale nie zapisuje, sprawdź dostępność wywołania zwrotnego z Serwera Dokumentów do aplikacji źródłowej, zamiast zmieniać zasadę działania mechanizmu round-robin w HAProxy. Przerwana aktywna sesja WebSocket może nadal wymagać ponownego połączenia klienta; kontrole poprawności działania zaplecza nie gwarantują bezproblemowego przejścia w tryb failover edycji.
Weryfikacja końcowa: zarówno test punktu końcowego zdrowia publicznego, jak i rzeczywisty test edycji i ponownego otwarcia powinny zakończyć się pomyślnie. Należy zachować w rotacji tylko zweryfikowane, obsługiwane węzły, potwierdzić, że odnowienie certyfikatu ponownie ładuje prawidłowy PEM, oraz monitorować logi HAProxy pod kątem powtarzających się odpowiedzi 502/503 lub nieoczekiwanych rozłączeń WebSocket.