Strona główna
» Jak
»
Uruchomienie kodu Collabora za Nginx z zakończeniem TLS
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.
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.
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
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.
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ą.
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ś.
Powiązanie z adresem 127.0.0.1 sprawia, że nasłuchiwacz CODE jest dostępny tylko z hosta Docker.Opcje te informują CODE, że protokół TLS jest obsługiwany przez odwrotny serwer proxy.
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
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/.
Nginx posiada certyfikat publiczny i nasłuchuje na protokole HTTPS dla nazwy hosta Collabora.
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 .
Przekaż zasoby edytora, odkrycia WOPI i punkty końcowe możliwości do tego samego programu nasłuchującego CODE.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.Przekaż również administracyjny protokół WebSocket i pozostałe ścieżki przesyłania dokumentów.
Zastosuj zmianę i sprawdź zachowanie zależne od wersji
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.
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.
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.