Acasă
» MS OFFICE
»
Remedierea erorii Collabora Online „Conexiunea Socket s-a închis neașteptat”: Verificări WebSocket și Proxy
Remedierea erorii Collabora Online „Conexiunea Socket s-a închis neașteptat”: Verificări WebSocket și Proxy
Collabora Online poate părea funcțional la prima vedere și totuși poate eșua imediat ce editorul încearcă să stabilească WebSocket-ul activ. Simptomul familiar este un document care începe să se încarce și apoi raportează că conexiunea socket s-a închis pe neașteptate, uneori însoțită de o wss://solicitare eșuată în browser. În 2026, există un motiv specific versiunii pentru a verifica înainte de a schimba orice altceva: ramura 26.04 a introdus o adresă URL WebSocket mai compactă, iar regulile de reverse-proxy mai vechi pot intra în conflict cu aceasta.
Notele oficiale de lansare ale versiunii Collabora pentru CODE 26.04 menționează că versiunea CODE 26.04.1, lansată pe 8 iunie 2026, impunea utilizatorilor de proxy invers Apache2 să își modifice regula ProxyPass pentru noua adresă URL compactă WebSocket. Notele ulterioare, versiunea 26.04.2.x, menționează că CODE poate reveni la adresa URL veche atunci când noua rută nu poate fi utilizată și emite un avertisment de audit care îndrumă administratorii înapoi către recomandările actuale de proxy. Ramura Collabora Online 26.04 pentru întreprinderi este, de asemenea, actualizată în 2026, așa că administratorii ar trebui să compare orice configurație de proxy copiată dintr-un ghid mai vechi, versiunea 24.04 sau 25.04, cu cea mai recentă documentație a furnizorului înainte de a trata problema ca pe o eroare aleatorie de rețea.
O solicitare WebSocket eșuată în browser este cel mai clar semn că problema se află pe canalul editorului live, nu pe încărcarea obișnuită a paginii.
Ce înseamnă de fapt eroarea
Mesajul nu identifică o singură cauză principală. Înseamnă că WebSocket-ul browser-to-Collabora fie nu s-a actualizat niciodată cu succes, fie a fost configurat și apoi închis în mod neașteptat. Această distincție este importantă deoarece remedierile diferă.
Comportament observat
Cea mai utilă primă verificare
Cauze tipice
Eșuează imediat când se deschide un document
Rețea de browser > Jurnale de acces/erori WS și reverse-proxy
Rută greșită /cool/, anteturi de actualizare lipsă, regulă Apache incompatibilă cu versiunea 26.04, nepotrivire gazdă/origine
Funcționează scurt, apoi se deconectează la un interval repetabil
Expirări de inactivitate pentru proxy, ingress, load balancer și firewall
Timp de așteptare prea scurt pentru un WebSocket de lungă durată
Descoperirea funcționează, dar editarea eșuează
Testați WebSocket-ul separat de/hosting/discovery
Punctele finale HTTP sunt accesibile în timp ce ruta WebSocket nu este.
Doar un singur browser sau o singură cale de rețea eșuează
Comparați protocolul de solicitare și comportamentul proxy-ului
Gestionare HTTP/2 sau HTTP/3, redirecționare CONNECT, filtrare intermediară
Neconcordanță de configurare între origine, gazdă, port, gazdă WOPI sau proxy
1. Verificați dacă eroarea a început după o actualizare la versiunea 26.04
Dacă problema a apărut imediat după trecerea de la versiunea 25.04 sau o imagine CODE mai veche la versiunea 26.04, tratați proxy-ul invers ca primul suspect. Aceasta nu este o speculație: Collabora a documentat modificarea URL-ului compact WebSocket în notele de lansare pentru versiunea 26.04, iar o problemă oficială a proiectului a raportat că WebSockets a eșuat după o actualizare la versiunea 26.04.1 până la modificarea regulilor proxy Apache.
Nu rezolvați această problemă prin efectuarea unei versiuni anterioare fără a modifica versiunea și a lăsa vechiul proxy intact. O revenire la versiunea inițială poate fi o măsură temporară de recuperare, dar soluția durabilă este alinierea proxy-ului cu versiunea pe care intenționați să o rulați. Pentru Apache, utilizați setările actuale ale proxy-ului Collabora Online, în loc de o copie anterioară versiunii 26.04. Înregistrarea problemelor WebSocket pentru versiunea 26.04 a Collabora documentează un caz în care actualizarea regulilor Apache a restabilit operațiunea.
Pentru implementările Apache actualizate la versiunea 26.04, comparați regulile ProxyPass mai vechi cu documentația Collabora actuală, în loc să presupuneți că o regulă funcțională anterioară este încă corectă.
2. Demonstrați dacă HTTP funcționează în timp ce WebSocket eșuează
Testați mai întâi endpoint-urile Collabora obișnuite:
Un răspuns reușit dovedește că DNS, TLS, proxy-ul front-end și cel puțin o parte a serviciului Collabora sunt accesibile. Nu dovedește că editarea documentelor va funcționa. Editorul depinde de o rută WebSocket sub /cool/, care are cerințe proxy diferite.
Apoi, deschideți instrumentele de dezvoltare ale browserului, reproduceți eroarea și inspectați panoul Rețea cu filtrul WS. O confirmare de conectare WebSocket reușită actualizează în mod normal conexiunea HTTP; RFC 6455 definește răspunsul serverului ca fiind statusul HTTP 101 atunci când actualizarea are succes. Dacă în schimb vedeți 400, 404, 405, 502 sau o solicitare eșuată imediat, corelați acea marcaj temporal cu jurnalele reverse-proxy și coolwsd.
3. Remediați calea și anteturile Nginx WebSocket
Pentru Nginx, proprietățile importante sunt simple: cererea trebuie să ajungă la /cool/calea Collabora, proxy-ul trebuie să utilizeze HTTP/1.1 pentru un flux clasic de actualizare WebSocket, anteturile ` Upgradeand` Connectiontrebuie redirecționate, gazda originală trebuie păstrată, iar timeout-ul de citire trebuie să fie suficient de lung pentru o sesiune de editare.
Manualul SDK-ului Collabora a arătat de mult timp o locație dedicată WebSocket cu Upgrade, Connection, Host, și un long proxy_read_timeout. O problemă oficială a documentației proiectului Collabora a subliniat, de asemenea, necesitatea unor antete WebSocket pe /coolruta mai largă. Un model conservator, compatibil cu versiunea 26.04, este:
Nu lipiți acest cod peste o configurație de producție funcțională fără a adapta adresa din amonte, modelul TLS, gestionarea căii și orice controale de securitate existente. Alegerea corectă este să păstrați topologia, respectând în același timp cerințele actuale ale rutei și antetului Collabora.
Un proxy Collabora WebSocket necesită ruta /cool/, gestionarea actualizării HTTP/1.1, gazda originală și un timeout potrivit pentru sesiuni lungi de editare.
De ce contează valorile de timeout
Sesiunile de editare WebSocket sunt de lungă durată. Valorile Helm actuale ale proiectului Collabora descriu explicit acest lucru și utilizează un timeout proxy mare pentru proxy-ul Nginx inclus. Dacă echilibratorul de încărcare Edge, Kubernetes ingress, CDN, firewall-ul sau proxy-ul invers închid conexiunile inactive mai devreme decât se așteaptă aplicația, utilizatorii pot edita normal pentru o perioadă și apoi pot fi deconectați la un interval constant.
Când eroarea se întâmplă după aproximativ același număr de secunde de fiecare dată, inspectați fiecare intermediar din cale în loc să creșteți doar timeout-ul Nginx. Timeout-ul cel mai scurt câștigă.
4. Asigurați consecvența terminării TLS
O implementare obișnuită termină HTTPS la Nginx, Apache, HAProxy, Traefik sau un controler de intrare și transmite HTTP simplu către Collabora pe portul 9980. În acest design, configurația oficială a Collabora necesită ca backend-ul să știe că TLS este terminat de către proxy. Manualul SDK-ului documentează ssl.enable=falseîmpreună cu ssl.termination=trueacest model.
Pentru o implementare Docker, acest lucru este exprimat în mod obișnuit prin parametrii suplimentari ai Collabora:
--o:ssl.enable=false --o:ssl.termination=true
Folosiți-le doar atunci când TLS este într-adevăr terminat în amonte. Dacă proxy-ul se conectează la Collabora prin HTTPS, configurați topologia respectivă în mod consecvent, în loc să amestecați cele două modele. O nepotrivire poate produce scheme greșite, adrese URL WebSocket incorecte, erori de certificat sau redirecționări care întrerup actualizarea.
5. Verificați neconcordanțele dintre gazdă și origine în jurnalele coolwsd
Collabora validează originile WebSocket. Dacă jurnalul conține cuvinte precum Rejecting WebSocket upgradeurmate de o origine și o gazdă așteptată, remediați relația nume gazdă/port extern în loc să adăugați anteturi permisive la întâmplare. Instrumentul oficial de urmărire a problemelor Collabora conține un exemplu documentat în care un nume de server configurat, inclusiv :443nu se potrivea cu Originea browserului fără acel port explicit.
Căutați prima eroare în același timp cu solicitarea WS eșuată. Mesajele despre upgrade-uri respinse, sintaxă URI greșită, o gazdă neașteptată sau un upstream indisponibil sunt mai ușor de acționat decât fereastra pop-up generică a browserului.
6. Dacă eșuează doar browserele bazate pe Chromium, verificați gestionarea HTTP/2 sau HTTP/3
Acesta este un caz mai restrâns, dar merită verificat înainte de a reconstrui serverul. Proiectul Collabora a documentat un caz legat de Chromium în care un proxy a transmis o cerere HTTP/2 CONNECT WebSocket direct către coolwsd și a primit eroarea 405 Method Not Allowed. O altă problemă înregistrează erori de încărcare a documentelor legate de HTTP/3/QUIC într-o anumită cale proxy. Aceste rapoarte nu înseamnă că HTTP/2 sau HTTP/3 trebuie întotdeauna dezactivate; ele înseamnă că intermediarul trebuie să traducă comportamentul clientului într-o conexiune WebSocket pe care Collabora o acceptă.
Dacă Firefox funcționează în timp ce Chrome eșuează pe același cont și document, capturați protocolul și codul de stare la nivelul proxy-ului. Este de preferat să corectați comportamentul proxy-ului/ingress-ului în locul dezactivării globale a protocoalelor moderne, cu excepția cazului în care mediul dvs. nu are o alternativă compatibilă.
7. Reporniți numai după validarea configurației
Testează mai întâi sintaxa proxy-ului. Apoi reîncarcă-l în loc să faci reporniri orbe repetate:
Pentru containere, reporniți serviciul Collabora numai atunci când ați modificat propriul mediu sau coolwsdsetări. O modificare exclusivă pentru proxy necesită în mod normal doar reîncărcarea proxy-ului.
Verificați atât punctele finale HTTP Collabora obișnuite, cât și sesiunea WebSocket live; descoperirea cu succes nu este suficientă pentru a demonstra că editarea este corectată.
Cum să verificați singur remedierea
Folosește o secvență scurtă de verificare în loc să te bazezi pe un singur document deschis cu succes:
Confirmă /hosting/discoveryși /hosting/capabilitiessunt accesibile prin același nume de gazdă public la care au acces utilizatorii.
Deschideți un document și confirmați că actualizările solicitate de browser WS au fost efectuate cu succes, în loc să returneze 4xx/5xx.
Introduceți mai multe modificări, așteptați mai mult decât vechiul interval de eșec și confirmați că conexiunea rămâne stabilă.
Salvați și închideți documentul, apoi redeschideți-l pentru a confirma că ruta dus-întors WOPI este corespunzătoare.
Verificați jurnalele coolwsd și proxy pentru actualizări WebSocket respinse, erori de parsare URI sau bucle de reconectare repetate.
Dacă implementarea are un echilibrator de încărcare sau un ingress, repetați testul prin ruta de producție reală, în loc să vă conectați direct la portul 9980.
Ce soluție ar trebui să alegi?
Dacă ați făcut upgrade la versiunea 26.04 și utilizați Apache, actualizarea regulilor proxy este acțiunea cu prioritate maximă, deoarece Collabora a documentat explicit această modificare. Dacă deconectarea are loc după o perioadă fixă, concentrați-vă pe setările de timeout pentru fiecare salt la rețea. Dacă eroarea este imediată pe toate browserele, verificați /cool/rutarea, anteturile de upgrade, consistența gazdă/origine și terminarea TLS. Dacă o singură familie de browsere eșuează, comparați gestionarea protocolului HTTP înainte de a modifica Collabora în sine.
Cheia este de a evita tratarea implicită a „conexiunii socket închise pe neașteptate” ca o eroare a aplicației Collabora. În multe implementări, editorul, endpoint-ul de descoperire și gazda WOPI sunt sănătoase, în timp ce proxy-ul invers gestionează greșit tipul de conexiune care contează cel mai mult pentru editarea live: WebSocket-ul cu durată lungă de viață.