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.

Diagramă de rețea care arată HTTPS-ul browserului care se termină la Nginx înainte ca HTTP-ul privat să ajungă la containerul Collabora CODE pe portul 9980 127.0.0.1
Browserul folosește HTTPS pentru Nginx; HTTP este limitat la legătura privată dintre proxy și CODE.

Pregătiți recipientul și certificatul

  1. 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.
  2. 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.
  3. 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.
Editorul Docker Compose afișează portul serviciului Collabora legat la 127.0.0.1 pe portul 9980
Legarea la 127.0.0.1 menține ascultătorul CODE accesibil doar de la gazda Docker.
Setarea mediului Docker Compose cu ssl.enable=false și ssl.termination=true pentru CODUL Collabora
Aceste opțiuni îi spun CODE-ului că TLS este gestionat de proxy-ul invers.
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"

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

  1. 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/.
Fragment de configurare Nginx cu un listener TLS, numele serverului office.example.com și căile fișierelor de certificat
Nginx deține certificatul public și ascultă prin HTTPS numele de gazdă 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;
    }
}

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 .

Locația Nginx blochează redirecționarea căilor de descoperire a browserului și a găzduirii către listener-ul CODE privat
Redirecționează resursele editorului, descoperirea WOPI și punctele finale ale capabilităților către același listener CODE.
Locația Nginx WebSocket pentru calea interesantă cu HTTP 1.1, antete de actualizare și conexiune și un timeout lung de citire
Ruta principală WebSocket necesită HTTP/1.1, iar anteturile de actualizare sau editorul se pot încărca fără a deveni utilizabil.
Configurarea Nginx pentru căile de solicitare cool sau lool pentru administratorul cool WebSocket și Collabora
Redirecționează și rutele de transfer de documente administrative WebSocket și celelalte.

Aplicați modificarea și verificați comportamentul sensibil la versiune

  1. 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.
  2. 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.
Fereastra terminalului cu comanda nginx -t gata pentru validarea configurației reverse-proxy
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.

Lasă un comentariu

Rulează CODUL Collabora în spatele Nginx cu terminare TLS

Rulează CODUL Collabora în spatele Nginx cu terminare TLS

Puneți Nginx la conducerea HTTPS pentru un container de CODE Collabora, editați corect WebSocket-urile și verificați endpoint-ul public fără a expune portul 9980.

Mențineți textul vizibil când se deschide tastatura mobilă Collabora

Mențineți textul vizibil când se deschide tastatura mobilă Collabora

Depanați o tastatură de browser mobil care acoperă text în Collabora Online, cu soluții rapide și verificări separate pentru browsere, WebView-uri încorporate și pagini gazdă.

Opriți imprimările și descărcările nedorite în ONLYOFFICE

Opriți imprimările și descărcările nedorite în ONLYOFFICE

Setați limite de imprimare și descărcare pentru linkurile ONLYOFFICE, membrii sălii sau sesiunile API Docs, apoi verificați restricțiile dintr-un cont de destinatar.

Programați copii de rezervă fiabile pentru spațiul de lucru ONLYOFFICE

Programați copii de rezervă fiabile pentru spațiul de lucru ONLYOFFICE

Setați o destinație de backup, un program, o acoperire Mail și o limită de retenție în ONLYOFFICE Workspace, apoi verificați dacă arhiva este gata de restaurare.

Implementați ONLYOFFICE Docs Enterprise cu fișierul său oficial Compose

Implementați ONLYOFFICE Docs Enterprise cu fișierul său oficial Compose

Porniți stiva Enterprise Docker Compose, păstrați licența și datele acesteia, configurați JWT în siguranță și confirmați că editorii sunt gata de integrare.

Text curat din foaia de calcul cu o macrocomandă ONLYOFFICE reutilizabilă

Text curat din foaia de calcul cu o macrocomandă ONLYOFFICE reutilizabilă

Folosește o macrocomandă JavaScript ONLYOFFICE pentru a elimina caracterele neimprimabile și a decupa spațiile suplimentare dintr-un interval definit de foi de calcul, cu un flux de lucru de revizuire sigur.

Schimbați locația de stocare implicită a spațiului de lucru ONLYOFFICE

Schimbați locația de stocare implicită a spațiului de lucru ONLYOFFICE

Mutați datele portalului din Disk Default către un furnizor de stocare în cloud acceptat sau relocați datele Docker în siguranță, modificând maparea volumului gazdă.

Eliminați complet serverul de documente ONLYOFFICE din Linux

Eliminați complet serverul de documente ONLYOFFICE din Linux

Identificați dacă Document Server utilizează un pachet Linux sau Docker, eliminați doar componentele acestuia și verificați datele rămase fără a șterge serviciile partajate din greșeală.

Opriți întârzierea editării în ONLYOFFICE prin identificarea blocajelor

Opriți întârzierea editării în ONLYOFFICE prin identificarea blocajelor

Asociați editarea colaborativă lentă cu presiunea resurselor Docker, conexiunile proxy sau încărcarea documentelor, apoi alegeți soluția care corespunde măsurătorilor dvs.

Configurați HTTPS pentru ONLYOFFICE Docs în Docker

Configurați HTTPS pentru ONLYOFFICE Docs în Docker

Alegeți unde ar trebui să se termine TLS, montați în siguranță un certificat de încredere și o cheie privată și verificați accesul HTTPS la un server ONLYOFFICE Docs Dockerizat.