Skip to main content
Ayakaleaf Pro understøtter horisontal skalering. Vi har testet og bekræftet, at det kører korrekt med flere replikaer.
Dette dokument beskriver de tekniske krav og giver retningslinjer for at køre Ayakaleaf Pro på mere end én node.
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)
Opsætning af horisontal skalering kræver en betydelig indsats. Vi råder til kun at overveje horisontal skalering, når man når en vis størrelse. For eksempel er en Server Pro-installation til i alt 1.000 brugere blevet sat op med succes på en enkelt server udstyret med to 4-kerne-processorer og 32 GB systemhukommelse. Se dokumentationen om hardwarekrav for at få anbefalinger. En installation af Server Pro med horisontal skalering omfatter en række eksterne komponenter, såsom en load balancer og et S3-kompatibelt lagringsbackend. Vi kan hjælpe med fejlfinding af fejl i Server Pro-containerne, som kan skyldes forkert konfiguration, og give generelle råd baseret på dette dokument. Desværre kan vi ikke hjælpe med at konfigurere tredjepartsapplikationer/-systemer. Løsning af tekniske problemer, der er specifikke for den hardware/software, du bruger til at levere de eksterne komponenter, er ikke dækket af vores supportvilkår.

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).
    Bemærk: Desværre er der i øjeblikket ingen officiel understøttelse af MongoDB-kompatible databaser som CosmoDB/DocumentDB, da vi ikke har testet Server Pro med dem. Selvom det måske er muligt at installere Server Pro med kompatible databaser, understøtter vi officielt kun installationer, der bruger MongoDB.
  • 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.
    Bemærk: Desværre er der i øjeblikket ingen officiel understøttelse af Redis-kompatible key/value-lagre som KeyDB/Valkey, da vi ikke har testet Server Pro med dem. Selvom det måske er muligt at installere Server Pro med kompatible lagre, understøtter vi officielt kun installationer, der bruger Redis.
  • 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.
    Vigtigt: NFS/Amazon EFS/Amazon EBS understøttes ikke til horisontal skalering. Se afsnittet om krav til hardwarelager om skalering af lager i Server Pro for at få flere detaljer.
  • 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.
Git-repositorierne gemmes lokalt på disken. Der er ingen replikeringsmuligheder. Git-bridge skal køres som en singleton. For at opnå optimal ydeevne anbefaler vi at bruge en lokal disk til git-bridge-data. Git-bridge-datadisken bør sikkerhedskopieres regelmæssigt. Til datalagringen ved horisontal skalering skal du bruge:
  • 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. Med NGINX_KEEPALIVE_TIMEOUT=120 kan load balanceren vælge 115 s.
  • Klient-IP’er Sæt anmodningsheaderen X-Forwarded-For til klientens IP.
  • Ved SSL-terminering Load balanceren skal tilføje anmodningsheaderen X-Forwarded-Proto: https.

Konfiguration af Server Pro

Hemmeligheder Server Pro-instanserne skal være enige om fælles hemmeligheder:
  • WEB_API_PASSWORD (godkendelse af web-API)
  • STAGING_PASSWORD og V1_HISTORY_PASSWORD med samme værdi (godkendelse af historik)
  • CRYPTO_RANDOM (til sessionscookie)
  • OT_JWT_AUTH_KEY (godkendelse af historik)
Alle disse hemmeligheder skal konfigureres med hver sin unikke værdi og deles mellem instanserne. Hvis de ikke er konfigureret, og brugeranmodninger routes til forskellige Server Pro-instanser, vil anmodningerne fejle i godkendelseskontrollerne, og brugerne vil enten ofte blive omdirigeret til login-siden, eller deres handlinger i brugergrænsefladen vil fejle på uventede måder. Hvis de ikke er konfigureret, bruger Server Pro en ny tilfældig værdi for hver hemmelighed baseret på 32 tilfældige bytes fra /dev/urandom (256 tilfældige bits).
MongoDB Lad 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.
Proxykonfiguration
  • Sæt OVERLEAF_BEHIND_PROXY=true (SHARELATEX_BEHIND_PROXY for version 4.x og tidligere) for at få korrekte klient-IP’er.
  • Sæt TRUSTED_PROXY_IPS til load balancerens IP (flere CIDR’er kan angives, adskilt af komma).
Git-bridge-integration
Git-bridge er tilgængelig i Server Pro fra og med version 4.0.1.
Git-bridge-containeren har brug for en søskende-container med Server Pro til at håndtere indgående git-anmodninger. Denne søskende-container kan også betjene almindelig brugertrafik. I eksempelkonfigurationen fungerer den første instans som søskende-container for git-bridge, men i praksis kan enhver instans udfylde den rolle. Hvorfor skal vi udpege én Server Pro-container som søskende for git-bridge? Server Pro udleverer download-URL’er til historiktjenesten til git-bridge. Vi skal konfigurere disse historik-URL’er, så de er tilgængelige fra git-bridge-containeren. Konfiguration af Server Pro-containeren:
  • Sæt GIT_BRIDGE_ENABLED til 'true'
  • Sæt GIT_BRIDGE_HOST til <git-bridge container name>, f.eks. git-bridge
  • Sæt GIT_BRIDGE_PORT til 8000
  • Sæt V1_HISTORY_URL til http://<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.
Konfiguration af git-bridge-containeren:
  • Sæt GIT_BRIDGE_API_BASE_URL til http://<server-pro sibling container name>/api/v0, f.eks. http://server-pro-ha-1/api/v0
  • Sæt GIT_BRIDGE_OAUTH2_SERVER til http://<server-pro sibling container name>, f.eks. http://server-pro-ha-1
  • Sæt GIT_BRIDGE_POSTBACK_BASE_URL til http://<git-bridge container name>:8000, f.eks. http://git-bridge:8000
  • Sæt GIT_BRIDGE_ROOT_DIR til den bind-mountede git-bridge-datadisk, f.eks. /data/git-bridge
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 med Finished migrations eller vente, til applikationen accepterer trafik. Opgraderingsproceduren ser således ud:
  1. Planlæg et vedligeholdelsesvindue
  2. Stop alle instanser af Server Pro
  3. Tag en konsistent sikkerhedskopi som beskrevet i dokumentationen
  4. Start en enkelt instans af Server Pro med den nye version
  5. Kontrollér, at den nye instans fungerer som forventet
  6. Start de øvrige instanser med den nye version
Sidst ændret 5. oktober 2026