Acasă
» Cum să
»
Puneți documentele ONLYOFFICE în spatele HAProxy fără a afecta editarea
Puneți documentele ONLYOFFICE în spatele HAProxy fără a afecta editarea
Rulați ONLYOFFICE Docs în spatele HAProxy prin terminarea HTTPS la proxy, redirecționarea gazdei și schemei originale și permiterea conexiunilor WebSocket de lungă durată. Începeți cu un server de documente sănătos; adăugați mai multe backend-uri doar atunci când implementarea ONLYOFFICE este configurată pentru operarea multi-nod acceptată, nu doar pentru că HAProxy poate distribui cereri.
Poate HAProxy să echilibreze sarcina a două servere de documente independente?
HAProxy poate distribui cereri HTTP între noduri, dar asta nu transformă două instalări ONLYOFFICE autonome într-un cluster de editare coordonat. O sesiune de editare are conexiuni persistente și starea aplicației. Exemplul oficial ONLYOFFICE activ-activ utilizează verificări de sănătate backend și un cookie de persistență; acestea sunt mecanisme de rutare, nu înlocuitori pentru serviciile partajate și arhitectura la nivel de aplicație pe care le necesită ediția dvs.
Pentru o instalare convențională pe un singur server, utilizați doar docs1în backend-ul de mai jos. Pentru două noduri, confirmați mai întâi arhitectura clusterului, ediția acceptată, dependențele partajate, compatibilitatea versiunilor și configurația JWT cu documentația de implementare ONLYOFFICE sau cu asistența furnizorului. Adresele exemplu — 10.0.10.21și 10.0.10.22— sunt IP-uri private ilustrative, nu gazde descoperite.
Ce trebuie să funcționeze înainte să editați HAProxy?
Numele public docs.example.comar trebui să fie rezolvat la endpoint-ul HAProxy. HAProxy are nevoie de porturile TCP de intrare 80 și 443 și de acces la rețea privată pentru fiecare server de documente pe portul 80. Aplicația dvs. de gestionare a documentelor trebuie să poată accesa și adresa publică Docs, în timp ce ONLYOFFICE trebuie să poată prelua documente și trimite apeluri inverse către aplicație. Păstrați HTTP-ul backend privat; criptați separat hop-ul backend dacă acesta traversează o rețea neîncrezătoare.
Verificați fiecare server de documente de la gazda proxy. Executați curl -i http://10.0.10.21/healthcheckși, dacă este prezent, curl -i http://10.0.10.22/healthcheck. Un endpoint de stare operațională returnează în mod normal HTTP 200 cu un corp de true. Investigați rutarea, firewall-urile sau starea serverului înainte de a configura echilibrarea, dacă oricare dintre acestea eșuează.
Confirmați un secret JWT fix. Serverul de documente și conectorul său trebuie să fie de acord asupra secretului token. Pentru instalările Docker, ONLYOFFICE documentează JWT_SECRETvariabila de mediu; începând cu Docs 7.2, bazarea pe un secret generat automat poate cauza erori de integrare după recreare sau repornire. În implementările multi-nod acceptate, aliniați secretele între noduri în funcție de arhitectura furnizorului.
O cerere de verificare a stării de funcționare backend returnează HTTP 200 și true înainte ca serverul să fie adăugat la HAProxy.
Cum configurezi HTTPS și transmiți mai departe anteturile corecte?
Pasul 1: Pregătiți certificatul
Obțineți un certificat de încredere care să acopere docs.example.com. În acest exemplu Linux, HAProxy citește un fișier PEM care conține lanțul de certificate urmat de cheia privată. Dacă certificatele există deja în altă parte, înlocuiți acele căi. Restricționați accesul la PEM-ul combinat și aranjați reconstruirea acestuia la reînnoirea certificatului.
Certificatul și cheia privată sunt plasate într-un fișier PEM protejat pentru listener-ul HTTPS.
Pasul 2: Adăugați frontend-ul și backend-ul
Faceți o copie de rezervă a secțiunilor existente /etc/haproxy/haproxy.cfgși adaptați următoarele, în loc să înlocuiți orbește setările de jurnalizare sau de servicii specifice distribuției. Aceasta este o configurație ilustrativă pentru versiunile moderne de HAProxy. Acceptă doar HTTP pentru redirecționare, termină HTTPS pe portul 443, redirecționează gazda publică și schema și monitorizează endpoint-ul de sănătate al aplicației.
Configurația HAProxy separă listenerul său public TLS de backend-urile interne ale Document Server; utilizați directivele complete prezentate mai sus.
Eliminați docs2linia dacă al doilea nod nu este cu adevărat gata. Cookie-ul de persistență ajută cererile HTTP ulterioare să revină la nodul selectat. HAProxy gestionează o actualizare HTTP WebSocket fără o rescriere specială a URL-ului; timeout tunnel 1hpermite conexiunilor actualizate inactive să rămână deschise mai mult timp decât cererile obișnuite. Documentația HAProxy WebSocket explică acest comportament.
Setarea X-Forwarded-Protola httpseste corectă aici deoarece acest frontend termină HTTPS-ul public. Nu aveți încredere într-o schemă de redirecționare arbitrară furnizată de client sau într-o gazdă la o margine orientată spre internet. Documentația proxy-ului ONLYOFFICE solicită în mod specific X-Forwarded-Protoși X-Forwarded-Hostpăstrarea contextului URL extern.
Cum ar trebui să reîncarci și să testezi echilibratorul de încărcare?
Pasul 3: Validați înainte de a comuta traficul
Verificați sintaxa înainte de reîncărcare. O stare de ieșire diferită de zero înseamnă că trebuie să rezolvați eroarea de configurare sau de certificat raportată înainte de a continua:
Validați fișierul haproxy.cfg înainte de reîncărcarea unui serviciu; validarea sintactică reușită nu înlocuiește editarea testelor.
Răspunsul la verificarea publică a stării de funcționare ar trebui să afișeze HTTP 200 și să trueafișeze momentul în care un backend este funcțional. HAProxy folosește directivele option httpchkși http-check expectpentru a elimina nodurile defecte din rotația cererilor noi; consultați referința sa la verificarea stării de funcționare . O verificare reușită nu dovedește că editarea documentelor sau livrarea apelurilor inverse funcționează.
Pasul 4: Confirmați editarea, WebSockets și salvarea
Deschideți un document prin intermediul aplicației integrate, cum ar fi un sistem de gestionare a documentelor conectat la ONLYOFFICE Docs. În instrumentele pentru dezvoltatori din browser, utilizați panoul Rețea pentru a inspecta conexiunea WebSocket: handshake-ul de actualizare ar trebui să aibă succes, de obicei cu status HTTP 101 Switching Protocols. Faceți o mică modificare, închideți editorul, redeschideți documentul și confirmați că modificarea a fost salvată. Pentru o implementare pe două noduri acceptată corespunzător, testați și un al doilea colaborator și o scurgere planificată pe un singur nod în timpul unei ferestre de întreținere.
Dacă verificarea stării de funcționare publice funcționează, dar editorul se rotește sau se deconectează, verificați avertismentele privind conținutul mixt, erorile WebSocket, nepotrivirile JWT și dacă aplicația pentru documente poate accesa adresa URL Docs anunțată. Dacă un document se deschide, dar nu se salvează niciodată, investigați accesibilitatea apelului invers de la Document Server la aplicația sursă, în loc să modificați politica round-robin a HAProxy. O sesiune WebSocket activă întreruptă poate necesita în continuare reconectarea clientului; verificările stării de funcționare backend nu promit o reluare fără probleme a editării.
Verificare finală: atât endpoint-ul de sănătate publică, cât și un test real de editare și redeschidere ar trebui să fie valid. Păstrați în rotație doar nodurile verificate și acceptate, confirmați că reînnoirea certificatului reîncarcă PEM-ul corect și monitorizați jurnalele HAProxy pentru răspunsuri 502/503 repetate sau deconectări WebSocket neașteptate.