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.

  1. 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ă.
  2. 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.
Terminalul verifică http://10.0.10.21/healthcheck și afișează HTTP 200 cu true în corpul răspunsului.
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.

Aceste verificări respectă instrucțiunile de instalare Docker și instrucțiunile de configurare JWT ale furnizorului . Nu dezactivați JWT doar pentru a evita o eroare de proxy.

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.

sudo install -d -m 700 /etc/haproxy/certs
sudo sh -c 'umask 077; cat /etc/letsencrypt/live/docs.example.com/fullchain.pem /etc/letsencrypt/live/docs.example.com/privkey.pem > /etc/haproxy/certs/docs.example.com.pem'
Terminal Ubuntu care afișează directorul de certificate, fișierul PEM docs.example.com și permisiunile restricționate pentru fișiere.
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.

global
    log /dev/log local0

defaults
    mode http
    log global
    option httplog
    option forwardfor
    timeout connect 5s
    timeout client 60s
    timeout server 60s
    timeout tunnel 1h

frontend docs_http
    bind :80
    http-request redirect scheme https code 301

frontend docs_https
    bind :443 ssl crt /etc/haproxy/certs/docs.example.com.pem
    http-request set-header X-Forwarded-Proto https
    http-request set-header X-Forwarded-Host %[req.hdr(Host)]
    default_backend docs_nodes

backend docs_nodes
    option http-server-close
    balance roundrobin
    cookie SERVERID insert indirect nocache
    option httpchk GET /healthcheck
    http-check expect string true
    server docs1 10.0.10.21:80 check cookie docs1
    server docs2 10.0.10.22:80 check cookie docs2
Editorul de configurare HAProxy afișează un frontend TLS și două adrese private de backend pentru serverul de documente.
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:

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy
curl -i https://docs.example.com/healthcheck
Terminal care afișează comanda de validare a configurației HAProxy și un mesaj de configurare validă.
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.

Lasă un comentariu

Construiți un profil AutoYaST reutilizabil pentru instalările SLES 15

Construiți un profil AutoYaST reutilizabil pentru instalările SLES 15

Transformați un sistem SLES 15 existent într-un profil AutoYaST revizuit, validați-l și utilizați-l pentru a implementa un server de testare cu mai puțini pași manuali.

Configurarea KVM SLES 15: Pornirea mașinilor virtuale selectate la pornire

Configurarea KVM SLES 15: Pornirea mașinilor virtuale selectate la pornire

Instalați instrumentele SLES 15 KVM și libvirt, activați serviciul gazdă corect și configurați mașinile virtuale selectate pentru a porni după o repornire.

Automatizați copiile de rezervă Nextcloud consistente cu Restic și Cron

Automatizați copiile de rezervă Nextcloud consistente cu Restic și Cron

Fă copii de rezervă ale fișierelor Nextcloud și MariaDB împreună, programează snapshot-uri Restic criptate cu cron și verifică recuperarea fără a risca serverul activ.

Copierea de rezervă și restaurarea unei cutii poștale Zimbra CE utilizând exporturile TGZ

Copierea de rezervă și restaurarea unei cutii poștale Zimbra CE utilizând exporturile TGZ

Exportați o cutie poștală individuală Zimbra Community Edition, validați copia de rezervă TGZ și restaurați elementele lipsă fără a suprascrie e-mailurile existente.

Permiteți utilizatorilor aprobați să creeze Jitsi Rooms cu autentificarea Keycloak

Permiteți utilizatorilor aprobați să creeze Jitsi Rooms cu autentificarea Keycloak

Permiteți doar conturilor aprobate să deschidă săli Jitsi Meet folosind Keycloak și autentificarea prin token, menținând în același timp posibilitatea participării invitaților atunci când este nevoie.

Sincronizați utilizatorii Active Directory cu ONLYOFFICE DocSpace prin LDAP

Sincronizați utilizatorii Active Directory cu ONLYOFFICE DocSpace prin LDAP

Conectați ONLYOFFICE DocSpace la Active Directory sau OpenLDAP, importați utilizatori și grupuri în siguranță, mapați câmpurile contului și programați o sincronizare fiabilă.

Adăugați fonturi pe serverul de documente ONLYOFFICE: Docker vs Linux

Adăugați fonturi pe serverul de documente ONLYOFFICE: Docker vs Linux

Instalați fonturi personalizate în ONLYOFFICE Document Server, comparați montările persistente din Docker cu copii directe, reconstruiți lista de fonturi și verificați rezultatul.

Puneți documentele ONLYOFFICE în spatele HAProxy fără a afecta editarea

Puneți documentele ONLYOFFICE în spatele HAProxy fără a afecta editarea

Configurați HAProxy HTTPS, anteturile de redirecționare, timeout-urile WebSocket și verificările de funcționare pentru ONLYOFFICE Docs, apoi verificați editarea și salvările.

Instalați și semnați module de kernel personalizate pe bootarea securizată SLES 15

Instalați și semnați module de kernel personalizate pe bootarea securizată SLES 15

Încărcați un modul kernel SLES 15 personalizat fără a dezactiva Secure Boot. Corelați kernelul care rulează, semnați fișierul .ko, înscrieți o cheie MOK și verificați încărcarea.

Redirecționare securizată SLES Syslog cu rsyslog și Mutual TLS

Redirecționare securizată SLES Syslog cu rsyslog și Mutual TLS

Trimiteți jurnalele de sistem SLES către un colector rsyslog la distanță prin TLS autentificat, cu verificări ale certificatelor, memorare temporară în caz de întreruperi și teste de livrare.