Ayakaleaf Pro støtter horisontal skalering. Vi har testet og bekreftet at den kjører korrekt med flere replikaer.
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)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).
-
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.
-
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.
-
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.
- 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. MedNGINX_KEEPALIVE_TIMEOUT=120kan lastbalansereren bruke 115s. -
Klient-IP-er
Sett forespørselshodet
X-Forwarded-Fortil klientens IP. -
Ved SSL-terminering
Lastbalansereren må legge til forespørselshodet
X-Forwarded-Proto: https.
Eksempel på HAProxy-konfigurasjon
Eksempel på HAProxy-konfigurasjon
Konfigurasjon av Server Pro
Hemmeligheter Server Pro-instansene må bruke de samme delte hemmelighetene:WEB_API_PASSWORD(autentisering for web-API)STAGING_PASSWORDogV1_HISTORY_PASSWORDmed samme verdi (autentisering for historikk)CRYPTO_RANDOM(for øktinformasjonskapselen)OT_JWT_AUTH_KEY(autentisering for historikk)
/dev/urandom (256 tilfeldige biter).
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.
- Sett
OVERLEAF_BEHIND_PROXY=true(SHARELATEX_BEHIND_PROXYfor versjon4.xog tidligere) for å få korrekte klient-IP-er. - Sett
TRUSTED_PROXY_IPStil IP-en til lastbalansereren (flere CIDR-er kan angis, atskilt med komma).
Git-bridge er tilgjengelig i Server Pro fra og med versjon 4.0.1.
-
Sett
GIT_BRIDGE_ENABLEDtil'true' -
Sett
GIT_BRIDGE_HOSTtil<git-bridge container name>, f.eks.git-bridge -
Sett
GIT_BRIDGE_PORTtil8000 -
Sett
V1_HISTORY_URLtilhttp://<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.
- Sett
GIT_BRIDGE_API_BASE_URLtilhttp://<server-pro sibling container name>/api/v0, f.eks.http://server-pro-ha-1/api/v0 - Sett
GIT_BRIDGE_OAUTH2_SERVERtilhttp://<server-pro sibling container name>, f.eks.http://server-pro-ha-1 - Sett
GIT_BRIDGE_POSTBACK_BASE_URLtilhttp://<git-bridge container name>:8000, f.eks.http://git-bridge:8000 - Sett
GIT_BRIDGE_ROOT_DIRtil den bind-monterte disken for git-bridge-data, f.eks./data/git-bridge
Eksempel på docker-compose.yml-konfigurasjon
Eksempel på docker-compose.yml-konfigurasjon
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 medFinished migrations eller vente til applikasjonen tar imot trafikk.
Oppgraderingsprosedyren ser slik ut:
- Planlegg et vedlikeholdsvindu
- Stopp alle instansene av Server Pro
- Ta en konsistent sikkerhetskopi som beskrevet i dokumentasjonen
- Start én enkelt instans av Server Pro med den nye versjonen
- Kontroller at den nye instansen fungerer som forventet
- Start de andre instansene med den nye versjonen

