Acasă
» Cum să
»
Rulează CODUL Collabora în spatele Nginx cu terminare TLS
Rulează CODUL Collabora în spatele Nginx cu terminare TLS
Documentele se pot bloca după ce plasați Collabora CODE în spatele HTTPS, deoarece proxy-ul și CODE nu sunt de acord cu privire la locul de terminare TLS sau proxy-ul elimină traficul WebSocket. Configurați Nginx să prezinte certificatul public, să redirecționeze către un ascultător CODE privat și să transmită rutele WebSocket. Setările CODE sunt ssl.enable=falseși ssl.termination=true.
Acest exemplu folosește Nginx pe gazda Docker. Pentru un proxy într-un alt container, utilizați rețeaua privată Docker. Consultați setările proxy și ghidul de imagini CODE Docker din Collabora pentru opțiunile specifice versiunii.
Înțelegeți ce modificări se schimbă la terminarea SSL
Terminarea TLS înseamnă că Nginx gestionează conexiunea și certificatul HTTPS al browserului, în timp ce CODE folosește HTTP pe portul 9980 din spatele acestuia. Păstrați acel listener privat: legați-l la loopback pe o singură gazdă sau utilizați o rețea Docker privată. Dacă traficul proxy-to-CODE traversează o rețea neîncrezătoare, protejați acea legătură cu TLS sau un tunel.
Browserul folosește HTTPS pentru Nginx; HTTP este limitat la legătura privată dintre proxy și CODE.
Pregătiți recipientul și certificatul
Alegeți numele de gazdă public. Creați o înregistrare DNS, cum ar fi office.example.comcea care indică proxy-ul Nginx. Obțineți un certificat pentru exact numele de gazdă respectiv și instalați lanțul de certificate și cheia privată pe proxy.
Păstrați portul CODE privat. Pentru Nginx instalat direct pe gazda Docker, publicați portul containerului doar pe loopback. În Compose, maparea relevantă este 127.0.0.1:9980:9980. Nu publicați 9980:9980pe fiecare interfață gazdă decât dacă un firewall și un design de rețea îl restricționează în mod explicit.
Setați modul TLS al codului CODE. În serviciul Compose, adăugați cele două opțiuni la configurația codului CODE. Exemplul de mai jos folosește o variabilă de imagine, astfel încât să puteți fixa exact eticheta pe care ați revizuit-o și testat-o.
Legarea la 127.0.0.1 menține ascultătorul CODE accesibil doar de la gazda Docker.Aceste opțiuni îi spun CODE-ului că TLS este gestionat de proxy-ul invers.
Setați COLLABORA_CODE_IMAGEla o etichetă de imagine testată, fixată. Păstrați lista de permisiuni și setările de autentificare pentru gazdele WOPI; terminarea TLS nu le înlocuiește. Dacă Nginx este un alt serviciu Docker, omiteți maparea porturilor gazdă și proxy-ul către http://collabora:9980rețeaua privată partajată.
Configurați Nginx pentru a termina traficul TLS și proxy CODE
Adăugați gazda virtuală HTTPS. Plasați următoarele locații în blocul serverului Nginx pentru numele de gazdă public Collabora. Înlocuiți numele de gazdă și căile de certificat din exemplu. Această configurație este pentru o adresă URL Collabora la nivel de rădăcină, nu pentru o adresă URL montată sub o cale precum /office/.
Nginx deține certificatul public și ascultă prin HTTPS numele de gazdă Collabora.
Redirecționează rutele pentru resursele editorului, descoperire și capabilități. Locațiile /cool/.../wsși au nevoie de antete HTTP/1.1 și Upgrade pentru ca Nginx să poată face tuneluri pentru WebSockets; un timeout lung de citire menține sesiunile de editare deschise. Consultați documentația/cool/adminws Nginx despre proxy-ul WebSocket .
Redirecționează resursele editorului, descoperirea WOPI și punctele finale ale capabilităților către același listener CODE.Ruta principală WebSocket necesită HTTP/1.1, iar anteturile de actualizare sau editorul se pot încărca fără a deveni utilizabil.Redirecționează și rutele de transfer de documente administrative WebSocket și celelalte.
Aplicați modificarea și verificați comportamentul sensibil la versiune
Validați Nginx înainte de reîncărcare. Rulați nginx -t. Continuați numai dacă Nginx raportează că testul de configurare a avut succes; apoi reîncărcați Nginx cu comanda de service normală a sistemului.
Recreați containerul CODE. Aplicați modificarea Compose cu docker compose up -d collabora. Verificați jurnalele containerului pentru erori de pornire și confirmați că configurația activă include ambele opțiuni SSL.
Rulați testul de sintaxă înainte de reîncărcare, astfel încât un bloc de server format greșit să nu întrerupă alte site-uri.
Pentru contextul versiunii, depozitul Collabora a înregistrat un raport pe 22 iulie 2026 care indica faptul că coolwsd --probeverificarea stării de funcționare încorporată în CODE 26.04.2.2 și versiunile ulterioare putea verifica HTTPS pe portul 9980 chiar și atunci când TLS se termină la proxy. Acest lucru poate marca un container ca fiind nesănătos în timp ce endpoint-ul public răspunde. Examinați înregistrarea problemei pentru eticheta imaginii ; testați endpoint-ul public și o sesiune de editare înainte de a trata starea de funcționare doar ca dovadă a unei erori TLS. Păstrați verificările de funcționare cu excepția cazului în care un alt monitor le înlocuiește.
Verificați descoperirea HTTPS și o sesiune de editare reală
Cerere https://office.example.com/hosting/discoveryîntr-un browser sau cu curl. Ar trebui să returneze fișier XML de descoperire WOPI prin HTTPS, cu adrese URL care utilizează numele de gazdă HTTPS public. Un avertisment privind certificatul sugerează o problemă legată de numele de gazdă sau de certificat; adresele URL HTTP sugerează o nepotrivire de mod TLS sau de schemă de redirecționare; o eroare 502 sugerează că proxy-ul nu poate ajunge la CODE.
Apoi, deschideți un document de test de la gazda WOPI conectată și confirmați că editarea funcționează. În instrumentele pentru dezvoltatori de browser, /cool/.../wssolicitarea ar trebui să stabilească o conexiune WebSocket. Dacă descoperirea funcționează, dar editarea se blochează, verificați locațiile și anteturile WebSocket. Confirmați că integrarea permite gazda WOPI și indică spre https://office.example.com.
Configurare reușită: certificatul este de încredere, descoperirea utilizează HTTPS, portul 9980 rămâne privat și se deschide și se editează un document de test prin WebSocket.