Uruchomienie kodu Collabora za Nginx z zakończeniem TLS

Dokumenty mogą się zacinać po umieszczeniu Collabora CODE za HTTPS, ponieważ serwer proxy i CODE nie zgadzają się co do miejsca zakończenia TLS lub serwer proxy odrzuca ruch WebSocket. Skonfiguruj Nginx tak, aby prezentował certyfikat publiczny, przekierowywał do prywatnego nasłuchiwacza CODE i przekazywał trasy WebSocket. Ustawienia CODE to ssl.enable=falsei ssl.termination=true.

W tym przykładzie użyto serwera Nginx na hoście Dockera. W przypadku serwera proxy w innym kontenerze należy użyć prywatnej sieci Docker. Informacje na temat opcji specyficznych dla danej wersji można znaleźć w ustawieniach serwera proxy i przewodniku po obrazach Dockera w serwisie Collabora.

Zrozum, jakie zmiany powoduje zakończenie protokołu SSL

Zakończenie protokołu TLS oznacza, że ​​Nginx obsługuje połączenie HTTPS i certyfikat przeglądarki, podczas gdy CODE korzysta z protokołu HTTP na porcie 9980. Zachowaj prywatność tego nasłuchiwacza: powiąż go z pętlą zwrotną na jednym hoście lub użyj prywatnej sieci Docker. Jeśli ruch proxy-CODE przechodzi przez niezaufaną sieć, zabezpiecz to łącze za pomocą protokołu TLS lub tunelu.

Schemat sieci pokazujący zakończenie protokołu HTTPS przeglądarki na Nginx przed dotarciem prywatnego protokołu HTTP do kontenera Collabora CODE na porcie 127.0.0.1 9980
Przeglądarka używa protokołu HTTPS do Nginx; protokół HTTP jest ograniczony do prywatnego łącza między serwerem proxy a CODE.

Przygotuj pojemnik i certyfikat

  1. Wybierz publiczną nazwę hosta. Utwórz rekord DNS, taki jak office.example.comten, który wskazuje na serwer proxy Nginx. Uzyskaj certyfikat dla tej konkretnej nazwy hosta i zainstaluj jego łańcuch certyfikatów oraz klucz prywatny na serwerze proxy.
  2. Zachowaj prywatny port CODE. W przypadku serwera Nginx zainstalowanego bezpośrednio na hoście Dockera, publikuj port kontenera tylko w pętli zwrotnej. W Compose odpowiednie mapowanie to 127.0.0.1:9980:9980. Nie publikuj 9980:9980na każdym interfejsie hosta, chyba że zapora sieciowa i projekt sieci wyraźnie to ograniczają.
  3. Ustaw tryb TLS w CODE. W usłudze Compose dodaj dwie opcje do konfiguracji CODE. Poniższy przykład wykorzystuje zmienną obrazu, dzięki czemu możesz przypiąć dokładnie ten tag, który sprawdziłeś i przetestowałeś.
Edytor Docker Compose pokazujący port usługi Collabora powiązany z adresem 127.0.0.1 na porcie 9980
Powiązanie z adresem 127.0.0.1 sprawia, że ​​nasłuchiwacz CODE jest dostępny tylko z hosta Docker.
Ustawienia środowiska Docker Compose z ssl.enable=false i ssl.termination=true dla Collabora CODE
Opcje te informują CODE, że protokół TLS jest obsługiwany przez odwrotny serwer proxy.
services:
  collabora:
    image: ${COLLABORA_CODE_IMAGE}
    restart: unless-stopped
    ports:
      - "127.0.0.1:9980:9980"
    environment:
      extra_params: "--o:ssl.enable=false --o:ssl.termination=true"

Ustaw COLLABORA_CODE_IMAGEna przetestowany, przypięty tag obrazu. Zachowaj listę dozwolonych hostów WOPI i ustawienia uwierzytelniania; zakończenie protokołu TLS ich nie zastąpi. Jeśli Nginx to inna usługa Dockera, pomiń mapowanie portów hosta i proxy w http://collabora:9980udostępnionej sieci prywatnej.

Skonfiguruj Nginx, aby zakończyć ruch TLS i proxy CODE

  1. Dodaj wirtualny host HTTPS. Umieść poniższe lokalizacje w bloku serwera Nginx dla publicznej nazwy hosta Collabora. Zastąp przykładową nazwę hosta i ścieżki certyfikatów. Ta konfiguracja dotyczy adresu URL Collabora na poziomie głównym, a nie adresu URL zamontowanego poniżej ścieżki, takiej jak /office/.
Fragment konfiguracji Nginx z programem nasłuchującym TLS, nazwą serwera office.example.com i ścieżkami plików certyfikatów
Nginx posiada certyfikat publiczny i nasłuchuje na protokole HTTPS dla nazwy hosta Collabora.
server {
    listen 443 ssl;
    server_name office.example.com;
    ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;

    location ^~ /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Przekaż zasoby edytora, trasy wykrywania i możliwości. Lokalizacje /cool/.../wsi /cool/adminwswymagają nagłówków HTTP/1.1 i aktualizacji, aby Nginx mógł tunelować WebSocket; długi limit czasu odczytu utrzymuje sesje edycji otwarte. Zapoznaj się z dokumentacją proxy WebSocket w Nginx .

Bloki lokalizacji Nginx przekazujące przeglądarkę i hostujące ścieżki odnajdywania do prywatnego odbiornika CODE
Przekaż zasoby edytora, odkrycia WOPI i punkty końcowe możliwości do tego samego programu nasłuchującego CODE.
Lokalizacja Nginx WebSocket dla fajnej ścieżki z HTTP 1.1, nagłówkami aktualizacji i połączenia oraz długim limitem czasu odczytu
Główna trasa WebSocket wymaga protokołu HTTP/1.1, a nagłówki aktualizacji lub edytor mogą zostać załadowane i nie stać się użyteczne.
Konfiguracja Nginx dla ścieżek żądań Cool Admin WebSocket i Collabora Cool lub Lool
Przekaż również administracyjny protokół WebSocket i pozostałe ścieżki przesyłania dokumentów.

Zastosuj zmianę i sprawdź zachowanie zależne od wersji

  1. Sprawdź poprawność Nginx przed ponownym załadowaniem. Uruchom nginx -t. Kontynuuj tylko wtedy, gdy Nginx zgłosi pomyślny test konfiguracji; następnie przeładuj Nginx za pomocą standardowego polecenia serwisowego systemu.
  2. Utwórz ponownie kontener CODE. Zastosuj zmianę „Compose” za pomocą docker compose up -d collabora. Sprawdź logi kontenera pod kątem błędów uruchamiania i upewnij się, że aktywna konfiguracja zawiera obie opcje SSL.
Okno terminala z poleceniem nginx -t gotowym do sprawdzenia konfiguracji odwrotnego serwera proxy
Przed ponownym załadowaniem uruchom test składni, aby błędnie sformatowany blok serwera nie zakłócał działania innych witryn.

W kontekście wersji, repozytorium Collabora odnotowało 22 lipca 2026 r. raport informujący o tym, że wbudowana coolwsd --probekontrola kondycji w CODE 26.04.2.2 i nowszych wersjach może sprawdzać protokół HTTPS na porcie 9980, nawet gdy protokół TLS kończy się na serwerze proxy. Może to oznaczać kontener jako niesprawny, podczas gdy publiczny punkt końcowy odpowiada. Sprawdź rekord problemu dla znacznika obrazu ; przetestuj publiczny punkt końcowy i sesję edycji, zanim potraktujesz sam stan kondycji jako dowód awarii protokołu TLS. Zachowaj kontrole kondycji, chyba że zastąpi je inny monitor.

Zweryfikuj wykrywanie HTTPS i rzeczywistą sesję edycji

Żądanie https://office.example.com/hosting/discoveryw przeglądarce lub za pomocą curl. Powinno zwrócić kod XML wykrywania WOPI przez HTTPS, z adresami URL korzystającymi z publicznej nazwy hosta HTTPS. Ostrzeżenie o certyfikacie sugeruje problem z nazwą hosta lub certyfikatem; adresy URL HTTP sugerują niezgodność trybu TLS lub schematu przekazywania; błąd 502 oznacza, że ​​serwer proxy nie może dotrzeć do CODE.

Następnie otwórz dokument testowy z podłączonego hosta WOPI i sprawdź, czy edycja działa. W narzędziach programistycznych przeglądarki żądanie /cool/.../wspowinno nawiązać połączenie WebSocket. Jeśli wyszukiwanie działa, ale edycja się zawiesza, sprawdź lokalizacje i nagłówki WebSocket. Sprawdź, czy integracja zezwala na hosta WOPI i wskazuje na https://office.example.com.

Pomyślna konfiguracja: certyfikat jest zaufany, wykrywanie odbywa się za pomocą protokołu HTTPS, port 9980 pozostaje prywatny, a dokument testowy otwiera się i edytuje za pomocą protokołu WebSocket.

Zostaw komentarz

Uruchomienie kodu Collabora za Nginx z zakończeniem TLS

Uruchomienie kodu Collabora za Nginx z zakończeniem TLS

Przypisz Nginxowi obsługę protokołu HTTPS dla kontenera Collabora CODE, popraw edycję WebSockets i zweryfikuj publiczny punkt końcowy bez ujawniania portu 9980.

Zachowaj widoczność tekstu po otwarciu klawiatury mobilnej Collabora

Zachowaj widoczność tekstu po otwarciu klawiatury mobilnej Collabora

Rozwiąż problem z klawiaturą przeglądarki mobilnej zasłaniającą tekst w usłudze Collabora Online, korzystając z szybkich obejść i oddzielnych sprawdzeń dla przeglądarek, osadzonych elementów WebViews i stron hosta.

Zatrzymaj niechciane drukowanie i pobieranie w ONLYOFFICE

Zatrzymaj niechciane drukowanie i pobieranie w ONLYOFFICE

Ustaw limity drukowania i pobierania tylko dla łączy ONLYOFFICE, członków pokoju lub sesji API Dokumentów, a następnie zweryfikuj ograniczenia z poziomu konta odbiorcy.

Zaplanuj niezawodne kopie zapasowe dla obszaru roboczego ONLYOFFICE

Zaplanuj niezawodne kopie zapasowe dla obszaru roboczego ONLYOFFICE

Ustaw miejsce docelowe kopii zapasowej, harmonogram, zasięg poczty i limit przechowywania w obszarze roboczym ONLYOFFICE, a następnie sprawdź, czy archiwum jest gotowe do przywrócenia.

Wdróż ONLYOFFICE Docs Enterprise z oficjalnym plikiem Compose

Wdróż ONLYOFFICE Docs Enterprise z oficjalnym plikiem Compose

Uruchom stos Enterprise Docker Compose, zapisz jego licencję i dane, bezpiecznie skonfiguruj JWT i sprawdź, czy edytory są gotowe do integracji.

Czysty tekst arkusza kalkulacyjnego z możliwością wielokrotnego użytku makro ONLYOFFICE

Czysty tekst arkusza kalkulacyjnego z możliwością wielokrotnego użytku makro ONLYOFFICE

Użyj makra JavaScript ONLYOFFICE, aby usunąć znaki niedrukowalne i usunąć zbędne spacje z określonego zakresu arkusza kalkulacyjnego, korzystając z bezpiecznego przepływu pracy przeglądu.

Zmień domyślną lokalizację przechowywania danych w obszarze roboczym ONLYOFFICE

Zmień domyślną lokalizację przechowywania danych w obszarze roboczym ONLYOFFICE

Przenieś dane portalu z domyślnego dysku do obsługiwanego dostawcy pamięci masowej w chmurze lub bezpiecznie przenieś dane Docker, zmieniając mapowanie woluminu hosta.

Całkowite usunięcie serwera dokumentów ONLYOFFICE z systemu Linux

Całkowite usunięcie serwera dokumentów ONLYOFFICE z systemu Linux

Sprawdź, czy Document Server używa pakietu Linux czy Dockera, usuń tylko jego komponenty i sprawdź pozostałe dane, nie usuwając przez pomyłkę usług współdzielonych.

Zatrzymaj opóźnienia we współedycji ONLYOFFICE, znajdując wąskie gardło

Zatrzymaj opóźnienia we współedycji ONLYOFFICE, znajdując wąskie gardło

Powiąż powolną edycję zespołową z obciążeniem zasobów Dockera, połączeniami proxy lub obciążeniem dokumentu, a następnie wybierz rozwiązanie odpowiadające Twoim pomiarom.

Konfigurowanie protokołu HTTPS dla dokumentów ONLYOFFICE w Dockerze

Konfigurowanie protokołu HTTPS dla dokumentów ONLYOFFICE w Dockerze

Wybierz miejsce, w którym protokół TLS ma zostać zakończony, bezpiecznie zamontuj zaufany certyfikat i klucz prywatny oraz zweryfikuj dostęp HTTPS do serwera ONLYOFFICE Docs w środowisku Docker.