Ayakaleaf Pro understøtter horisontal skalering. Vi har testet og bekræftet, at det kører korrekt med flere replikaer.
Fra og med Server CE/Server Pro
5.0.3 er miljøvariablerne blevet omdøbt fra SHARELATEX_* til OVERLEAF_*.Hvis du bruger en 4.x-version (eller tidligere), skal du sørge for, at variablerne har det tilsvarende præfiks (f.eks. SHARELATEX_SITE_URL i stedet for OVERLEAF_SITE_URL)Krav

Eksternt, centralt datalager
Datalagringen i Server Pro kan opdeles i fire datalagre:-
MongoDB
- Størstedelen af dataene gemmes i MongoDB.
- Vi understøtter enten en lokal instans eller en ekstern instans, såsom MongoDB Atlas (en fuldt administreret MongoDB-tjeneste, der kører i AWS-infrastrukturen).
-
Redis
- Redis gemmer midlertidige data, såsom ventende dokumentopdateringer, før de skrives til MongoDB.
- Redis bruges til at formidle dokumentopdateringer mellem forskellige tjenester og til at underrette editoren om tilstandsændringer i et givet projekt.
- Redis bruges til at gemme brugersessioner.
- Vi understøtter enten en lokal instans eller en ekstern instans.
-
Projektfiler og historikfiler
- Ikke-redigerbare projektfiler gemmes uden for MongoDB. Det nye projekthistoriksystem (Server Pro 3.5 og nyere) gemmer også historikken uden for MongoDB.
- Til små enkeltinstanser understøtter vi enten et lokalt filsystem (som kan være baseret på en lokal SSD, NFS eller EBS) eller et S3-kompatibelt datalagringssystem.
-
Til horisontal skalering understøtter vi kun S3-kompatible datalagringssystemer.
-
Midlertidige filer
- LaTeX-kompileringer skal køre på hurtige, lokale diske for at opnå optimal ydeevne. Kompileringsoutputtet behøver ikke at blive gemt permanent eller sikkerhedskopieret.
- Buffering af nye filuploads og oprettelse af zip-filer med projekter har også fordel af at bruge en lokal disk.
Vi anbefaler kraftigt at bruge en lokal disk. Brug af enhver form for netværksdisk (såsom NFS eller EBS) kan resultere i uventede kompileringsfejl og andre ydeevneproblemer.
Git-bridge
Git-bridge er tilgængelig i Server Pro fra og med version 4.0.1.
- en central MongoDB-instans, der er tilgængelig fra alle Server Pro-instanser
- en central Redis-instans, der er tilgængelig fra alle Server Pro-instanser
- et centralt S3-kompatibelt lagringsbackend til projekt- og historikfiler
- en lokal disk på hver instans til midlertidige filer
- en lokal disk på den instans, der hoster git-bridge-containeren, til git-bridge-data
Krav til load balanceren
-
Vedvarende routing, f.eks. ved hjælp af en cookie
Dette krav skyldes følgende komponenter:
- Realtidsredigeringen i Server Pro bruger WebSockets med XHR-polling som fallback. Hver redigeringssession har lokal tilstand på serversiden, og anmodningerne i en given redigeringssession skal altid routes til den samme Server Pro-instans. Samarbejdsfunktionen bruger Redis Pub/Sub til at dele opdateringer mellem flere Server Pro-instanser.
- LaTeX-kompileringen gemmer output og kompileringscache lokalt af hensyn til ydeevnen. Når der sendes en kompileringsanmodning til én Server Pro-instans, skal de efterfølgende anmodninger om download af PDF/log routes til den samme Server Pro-instans.
- Lange timeouts for anmodninger for at understøtte kompilering af store LaTeX-dokumenter
- WebSocket-understøttelse for optimal ydeevne
- POST-payloadstørrelse på 50 MB
-
Keep-alive-timeout skal være lavere end keep-alive-timeouten i Server Pro
Keep-alive-timeouten i Server Pro kan konfigureres med miljøvariablen
NGINX_KEEPALIVE_TIMEOUT. Standardværdien er 65 s. Med standardværdien fungerer en keep-alive-timeout på 60 s i load balanceren. MedNGINX_KEEPALIVE_TIMEOUT=120kan load balanceren vælge 115 s. -
Klient-IP’er
Sæt anmodningsheaderen
X-Forwarded-Fortil klientens IP. -
Ved SSL-terminering
Load balanceren skal tilføje anmodningsheaderen
X-Forwarded-Proto: https.
Eksempel på HAProxy-konfiguration
Eksempel på HAProxy-konfiguration
Konfiguration af Server Pro
Hemmeligheder Server Pro-instanserne skal være enige om fælles hemmeligheder:WEB_API_PASSWORD(godkendelse af web-API)STAGING_PASSWORDogV1_HISTORY_PASSWORDmed samme værdi (godkendelse af historik)CRYPTO_RANDOM(til sessionscookie)OT_JWT_AUTH_KEY(godkendelse af historik)
/dev/urandom (256 tilfældige bits).
OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL for version 4.x og tidligere) pege på den centrale MongoDB-instans.
Redis
Lad OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST for version 4.x og tidligere) og REDIS_HOST pege på den centrale Redis-instans.
S3-kompatibelt lager til projekt- og historikfiler
Se dokumentationen om S3-kompatibelt lager for at få flere detaljer.
Midlertidige filer
Standard-bind-mountet af en lokal SSD til /var/lib/overleaf (/var/lib/sharelatex for version 4.x og tidligere) er tilstrækkeligt. Sørg for at lade SANDBOXED_COMPILES_HOST_DIR pege på mountpunktet på værten.
Vi anbefaler kraftigt at bruge en lokal disk. Brug af enhver form for netværksdisk (såsom NFS eller EBS) kan resultere i uventede kompileringsfejl og andre ydeevneproblemer.
- Sæt
OVERLEAF_BEHIND_PROXY=true(SHARELATEX_BEHIND_PROXYfor version4.xog tidligere) for at få korrekte klient-IP’er. - Sæt
TRUSTED_PROXY_IPStil load balancerens IP (flere CIDR’er kan angives, adskilt af komma).
Git-bridge er tilgængelig i Server Pro fra og med version 4.0.1.
-
Sæt
GIT_BRIDGE_ENABLEDtil'true' -
Sæt
GIT_BRIDGE_HOSTtil<git-bridge container name>, f.eks.git-bridge -
Sæt
GIT_BRIDGE_PORTtil8000 -
Sæt
V1_HISTORY_URLtilhttp://<server-pro sibling container name>:3100/api. Bemærk: Dette er kun nødvendigt på søskende-containeren til git-bridge-containeren. De øvrige instanser kan bruge en localhost-URL, som er standard.
- Sæt
GIT_BRIDGE_API_BASE_URLtilhttp://<server-pro sibling container name>/api/v0, f.eks.http://server-pro-ha-1/api/v0 - Sæt
GIT_BRIDGE_OAUTH2_SERVERtilhttp://<server-pro sibling container name>, f.eks.http://server-pro-ha-1 - Sæt
GIT_BRIDGE_POSTBACK_BASE_URLtilhttp://<git-bridge container name>:8000, f.eks.http://git-bridge:8000 - Sæt
GIT_BRIDGE_ROOT_DIRtil den bind-mountede git-bridge-datadisk, f.eks./data/git-bridge
Eksempel på docker-compose.yml-konfiguration
Eksempel på docker-compose.yml-konfiguration
Følgende konfiguration viser en selvstændig opsætning. For at demoen kan fungere, skal du angive en gyldig SSL-nøgle/-certifikat og tilpasse
OVERLEAF_SITE_URL (SHARELATEX_SITE_URL for version 4.x og tidligere). I en rigtig opsætning skal du erstatte dummy-hemmelighederne med rigtige hemmeligheder som angivet i kommentarerne. I en rigtig opsætning skal du flytte de enkelte containere over på dedikerede noder og tilpasse IP-adresserne til din lokale netværksopsætning.Hardware
Vi anbefaler at bruge de samme hardwarespecifikationer til alle de Server Pro-instanser, der indgår i den horisontale skalering. De generelle anbefalinger om hardwarespecifikationer for Server Pro-instanser gælder.Opgradering af Server Pro
Som en del af opgraderingsprocessen kører Server Pro automatisk databasemigreringer. Disse migreringer er ikke designet til at blive kørt fra flere instanser parallelt. Migreringerne skal være færdige, før selve webapplikationen startes. Du kan enten kontrollere loggene for en post medFinished migrations eller vente, til applikationen accepterer trafik.
Opgraderingsproceduren ser således ud:
- Planlæg et vedligeholdelsesvindue
- Stop alle instanser af Server Pro
- Tag en konsistent sikkerhedskopi som beskrevet i dokumentationen
- Start en enkelt instans af Server Pro med den nye version
- Kontrollér, at den nye instans fungerer som forventet
- Start de øvrige instanser med den nye version

