Skip to main content
Ayakaleaf Pro støtter horisontal skalering. Vi har testet og bekreftet at den kjører korrekt med flere replikaer.
Dette dokumentet beskriver de tekniske kravene og gir retningslinjer for å kjøre Ayakaleaf Pro på mer enn én node.
Fra og med Server CE/Server Pro 5.0.3 har miljøvariablene fått nytt navn fra SHARELATEX_* til OVERLEAF_*.Hvis du bruker en 4.x-versjon (eller tidligere), må du sørge for at variablene har riktig prefiks (f.eks. SHARELATEX_SITE_URL i stedet for OVERLEAF_SITE_URL)
Å sette opp horisontal skalering krever betydelig innsats. Vi anbefaler å vurdere horisontal skalering bare når du når en viss skala. Som et eksempel har en Server Pro-installasjon for totalt 1 000 brukere blitt satt opp med hell på én enkelt server med to 4-kjerners prosessorer og 32GB systemminne. Se dokumentasjonen om maskinvarekrav for anbefalinger. En installasjon av Server Pro med horisontal skalering omfatter et sett med eksterne komponenter, som en lastbalanserer og en S3-kompatibel lagringsbackend. Vi kan hjelpe med feilsøking av feil i Server Pro-containerne som kan skyldes feilkonfigurasjon, og gi generelle råd basert på dette dokumentet. Dessverre kan vi ikke bistå med konfigurasjon av tredjepartsapplikasjoner/-systemer. Løsning av tekniske problemer som er spesifikke for maskinvaren/programvaren du bruker til de eksterne komponentene, dekkes ikke av våre støttevilkår.

Krav

Ekstern, sentral datalagring

Datalagringen i Server Pro kan deles inn i fire datalagre:
  • MongoDB
    • De fleste data lagres i MongoDB.
    • Vi støtter enten en lokal instans eller en ekstern instans, som MongoDB Atlas (en fullt administrert MongoDB-tjeneste som kjører i AWS-infrastrukturen).
    Merk: Dessverre finnes det for øyeblikket ingen offisiell støtte for MongoDB-kompatible databaser som CosmoDB/DocumentDB, siden vi ikke har testet Server Pro med dem. Selv om det kan være mulig å installere Server Pro med kompatible databaser, støtter vi offisielt bare installasjoner som bruker MongoDB.
  • Redis
    • Redis lagrer midlertidige data, som ventende dokumentoppdateringer før de skrives til MongoDB.
    • Redis brukes til å formidle dokumentoppdateringer mellom ulike tjenester og til å varsle editoren om tilstandsendringer i et gitt prosjekt.
    • Redis brukes til å lagre brukerøkter.
    • Vi støtter enten en lokal instans eller en ekstern instans.
    Merk: Dessverre finnes det for øyeblikket ingen offisiell støtte for Redis-kompatible nøkkel/verdi-lagre som KeyDB/Valkey, siden vi ikke har testet Server Pro med dem. Selv om det kan være mulig å installere Server Pro med kompatible lagre, støtter vi offisielt bare installasjoner som bruker Redis.
  • Prosjektfiler og historikkfiler
    • Ikke-redigerbare prosjektfiler lagres utenfor MongoDB. Det nye prosjekthistorikksystemet (Server Pro 3.5 og senere) lagrer også historikken utenfor MongoDB.
    • For små enkeltinstanser støtter vi enten et lokalt filsystem (som kan ligge på en lokal SSD, NFS eller EBS) eller et S3-kompatibelt datalagringssystem.
    • For horisontal skalering støtter vi bare S3-kompatible datalagringssystemer.
    Viktig: NFS/Amazon EFS/Amazon EBS støttes ikke for horisontal skalering. Se avsnittet om lagringskrav for maskinvare om skalering av lagring i Server Pro for mer informasjon.
  • Midlertidige filer
    • LaTeX-kompileringer må kjøre på raske, lokale disker for optimal ytelse. Resultatet av kompileringen trenger ikke å lagres permanent eller sikkerhetskopieres.
    • Bufring av nye filopplastinger og oppretting av zip-filer for prosjekter har også fordel av å bruke en lokal disk.
Vi anbefaler på det sterkeste å bruke en lokal disk. Bruk av enhver form for nettverksdisk (som NFS eller EBS) kan føre til uventede kompileringsfeil og andre ytelsesproblemer.

Git-bridge

Git-bridge er tilgjengelig i Server Pro fra og med versjon 4.0.1.
Git-repositoriene lagres lokalt på disk. Det finnes ingen replikeringsalternativer. Git-bridge bør kjøres som en singleton. For optimal ytelse anbefaler vi å bruke en lokal disk for git-bridge-data. Disken med git-bridge-data bør sikkerhetskopieres jevnlig. For datalagring med horisontal skalering trenger du:
  • en sentral MongoDB-instans som er tilgjengelig fra alle Server Pro-instanser
  • en sentral Redis-instans som er tilgjengelig fra alle Server Pro-instanser
  • en sentral S3-kompatibel lagringsbackend for prosjekt- og historikkfiler
  • en lokal disk på hver instans for midlertidige filer
  • en lokal disk på instansen som kjører git-bridge-containeren, for git-bridge-data

Krav til lastbalanserer

  • Vedvarende ruting, f.eks. ved hjelp av en informasjonskapsel Dette kravet skyldes disse komponentene:
    • Sanntidsredigeringen i Server Pro bruker WebSockets med XHR-polling som reserveløsning. Hver redigeringsøkt har lokal tilstand på serversiden, og forespørslene i en gitt redigeringsøkt må alltid rutes til samme Server Pro-instans. Samarbeidsfunksjonen bruker Redis Pub/Sub for å dele oppdateringer mellom flere Server Pro-instanser.
    • LaTeX-kompileringen beholder utdataene og kompileringsbufferen lokalt for optimal ytelse. Når en kompileringsforespørsel er sendt til én Server Pro-instans, må de påfølgende nedlastingsforespørslene for PDF/logg rutes til samme Server Pro-instans.
  • Lange tidsavbrudd for forespørsler for å støtte kompilering av store LaTeX-dokumenter
  • WebSocket-støtte for optimal ytelse
  • POST-nyttelast på 50MB
  • Tidsavbrudd for keep-alive må være lavere enn tidsavbruddet for keep-alive i Server Pro Tidsavbruddet for keep-alive i Server Pro kan konfigureres med miljøvariabelen NGINX_KEEPALIVE_TIMEOUT. Standardverdien er 65s. Med standardverdien fungerer et tidsavbrudd for keep-alive på 60s i lastbalansereren. Med NGINX_KEEPALIVE_TIMEOUT=120 kan lastbalansereren bruke 115s.
  • Klient-IP-er Sett forespørselshodet X-Forwarded-For til klientens IP.
  • Ved SSL-terminering Lastbalansereren må legge til forespørselshodet X-Forwarded-Proto: https.

Konfigurasjon av Server Pro

Hemmeligheter Server Pro-instansene må bruke de samme delte hemmelighetene:
  • WEB_API_PASSWORD (autentisering for web-API)
  • STAGING_PASSWORD og V1_HISTORY_PASSWORD med samme verdi (autentisering for historikk)
  • CRYPTO_RANDOM (for øktinformasjonskapselen)
  • OT_JWT_AUTH_KEY (autentisering for historikk)
Alle disse hemmelighetene må konfigureres med sin egen unike verdi og deles mellom instansene. Hvis de ikke er konfigurert og brukerforespørsler rutes til ulike Server Pro-instanser, vil forespørslene mislykkes i autentiseringskontrollene, og brukerne vil enten ofte bli omdirigert til innloggingssiden, eller handlingene deres i brukergrensesnittet vil mislykkes på uventede måter. Hvis de ikke er konfigurert, bruker Server Pro en ny tilfeldig verdi for hver hemmelighet basert på 32 tilfeldige byte fra /dev/urandom (256 tilfeldige biter).
MongoDB La OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL for versjon 4.x og tidligere) peke til den sentrale MongoDB-instansen. Redis La OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST for versjon 4.x og tidligere) og REDIS_HOST peke til den sentrale Redis-instansen. S3-kompatibel lagring for prosjekt- og historikkfiler Se dokumentasjonen om S3-kompatibel lagring for mer informasjon. Midlertidige filer Standard bind-mount av en lokal SSD til /var/lib/overleaf (/var/lib/sharelatex for versjon 4.x og tidligere) er tilstrekkelig. Sørg for at SANDBOXED_COMPILES_HOST_DIR peker til monteringspunktet på verten.
Vi anbefaler på det sterkeste å bruke en lokal disk. Bruk av enhver form for nettverksdisk (som NFS eller EBS) kan føre til uventede kompileringsfeil og andre ytelsesproblemer.
Proxy-konfigurasjon
  • Sett OVERLEAF_BEHIND_PROXY=true (SHARELATEX_BEHIND_PROXY for versjon 4.x og tidligere) for å få korrekte klient-IP-er.
  • Sett TRUSTED_PROXY_IPS til IP-en til lastbalansereren (flere CIDR-er kan angis, atskilt med komma).
Git-bridge-integrasjon
Git-bridge er tilgjengelig i Server Pro fra og med versjon 4.0.1.
Git-bridge-containeren trenger en søsken-container med Server Pro for å håndtere innkommende git-forespørsler. Denne søsken-containeren kan også betjene vanlig brukertrafikk. I eksempelkonfigurasjonen fungerer den første instansen som søsken-container for git-bridge, men i praksis kan hvilken som helst instans fylle denne rollen. Hvorfor må vi utpeke én Server Pro-container som søsken for git-bridge? Server Pro deler ut nedlastings-URL-er for historikktjenesten til git-bridge. Vi må konfigurere disse historikk-URL-ene slik at de er tilgjengelige fra git-bridge-containeren. Konfigurasjon av Server Pro-containeren:
  • Sett GIT_BRIDGE_ENABLED til 'true'
  • Sett GIT_BRIDGE_HOST til <git-bridge container name>, f.eks. git-bridge
  • Sett GIT_BRIDGE_PORT til 8000
  • Sett V1_HISTORY_URL til http://<server-pro sibling container name>:3100/api. Merk: Dette er bare nødvendig på søsken-containeren til git-bridge-containeren. De andre instansene kan bruke en localhost-URL, som er standard.
Konfigurasjon av git-bridge-containeren:
  • Sett GIT_BRIDGE_API_BASE_URL til http://<server-pro sibling container name>/api/v0, f.eks. http://server-pro-ha-1/api/v0
  • Sett GIT_BRIDGE_OAUTH2_SERVER til http://<server-pro sibling container name>, f.eks. http://server-pro-ha-1
  • Sett GIT_BRIDGE_POSTBACK_BASE_URL til http://<git-bridge container name>:8000, f.eks. http://git-bridge:8000
  • Sett GIT_BRIDGE_ROOT_DIR til den bind-monterte disken for git-bridge-data, f.eks. /data/git-bridge
Følgende konfigurasjon viser et selvstendig oppsett. For at demoen skal fungere, må du oppgi en gyldig SSL-nøkkel/-sertifikat og justere OVERLEAF_SITE_URL (SHARELATEX_SITE_URL for versjon 4.x og tidligere). I et faktisk oppsett må du erstatte plassholderhemmelighetene med ekte hemmeligheter, som angitt i kommentarene. I et faktisk oppsett må du flytte de enkelte containerne til dedikerte noder og tilpasse IP-adressene til ditt lokale nettverksoppsett.

Maskinvare

Vi anbefaler å bruke de samme maskinvarespesifikasjonene for alle Server Pro-instansene som inngår i den horisontale skaleringen. De generelle anbefalingene om maskinvarespesifikasjoner for Server Pro-instanser gjelder.

Oppgradere Server Pro

Som en del av oppgraderingsprosessen kjører Server Pro automatisk databasemigreringer. Disse migreringene er ikke laget for å kjøres fra flere instanser parallelt. Migreringene må fullføres før selve webapplikasjonen startes. Du kan enten sjekke loggene etter en oppføring med Finished migrations eller vente til applikasjonen tar imot trafikk. Oppgraderingsprosedyren ser slik ut:
  1. Planlegg et vedlikeholdsvindu
  2. Stopp alle instansene av Server Pro
  3. Ta en konsistent sikkerhetskopi som beskrevet i dokumentasjonen
  4. Start én enkelt instans av Server Pro med den nye versjonen
  5. Kontroller at den nye instansen fungerer som forventet
  6. Start de andre instansene med den nye versjonen
Sist endret 5. oktober 2026