Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić
Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
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.
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.
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ć.
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.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.
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.
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.
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'

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.
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

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.
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:
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy
curl -i https://docs.example.com/healthcheck

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.
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.
Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.
Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.
Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.
Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.
Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.
Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.
Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.
Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.
Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.