Skip to main content
Ayakaleaf Pro stöder horisontell skalning. Vi har testat och verifierat att det fungerar korrekt med flera repliker.
Det här dokumentet listar de tekniska kraven och ger riktlinjer för att köra Ayakaleaf Pro på mer än en nod.
Från och med Server CE/Server Pro 5.0.3 har miljövariablerna bytt namn från SHARELATEX_* till OVERLEAF_*.Om du använder en 4.x-version (eller tidigare) ska du se till att variablerna har rätt prefix (t.ex. SHARELATEX_SITE_URL i stället för OVERLEAF_SITE_URL)
Att konfigurera horisontell skalning kräver en betydande arbetsinsats. Vi rekommenderar att du överväger horisontell skalning först när du når en viss skala. Som exempel har en Server Pro-installation för totalt 1 000 användare framgångsrikt satts upp på en enda server med två processorer med 4 kärnor och 32 GB systemminne. Se dokumentationen om hårdvarukrav för rekommendationer. En installation av Server Pro med horisontell skalning omfattar ett antal externa komponenter, såsom en lastbalanserare och en S3-kompatibel lagringsbackend. Vi kan hjälpa till att felsöka fel i Server Pro-containrarna som kan bero på felkonfiguration och ge allmänna råd baserat på det här dokumentet. Tyvärr kan vi inte hjälpa till med konfigurationen av tredjepartsapplikationer/-system. Lösning av tekniska problem som är specifika för den hårdvara/mjukvara du använder för de externa komponenterna omfattas inte av våra supportvillkor.

Krav

Extern, central datalagring

Datalagringen i Server Pro kan delas upp i fyra datalager:
  • MongoDB
    • Merparten av data lagras persistent i MongoDB.
    • Vi stöder antingen en lokal instans eller en extern instans, såsom MongoDB Atlas (en fullt hanterad MongoDB-tjänst som körs inom AWS-infrastrukturen).
    Obs: Tyvärr finns det för närvarande inget officiellt stöd för MongoDB-kompatibla databaser som CosmoDB/DocumentDB, eftersom vi inte har testat Server Pro med dem. Även om det kan vara möjligt att driftsätta Server Pro med kompatibla databaser stöder vi officiellt endast installationer som använder MongoDB.
  • Redis
    • Redis lagrar tillfälliga data, till exempel väntande dokumentuppdateringar innan de skrivs till MongoDB.
    • Redis används för att förmedla dokumentuppdateringar mellan olika tjänster och för att meddela editorn om tillståndsändringar i ett visst projekt.
    • Redis används för att lagra användarsessioner.
    • Vi stöder antingen en lokal instans eller en extern instans.
    Obs: Tyvärr finns det för närvarande inget officiellt stöd för Redis-kompatibla nyckel/värde-lager som KeyDB/Valkey, eftersom vi inte har testat Server Pro med dem. Även om det kan vara möjligt att driftsätta Server Pro med kompatibla lager stöder vi officiellt endast installationer som använder Redis.
  • Projektfiler och historikfiler
    • Icke-redigerbara projektfiler lagras utanför MongoDB. Det nya projekthistoriksystemet (Server Pro 3.5 och senare) lagrar även historiken utanför MongoDB.
    • För små enskilda instanser stöder vi antingen ett lokalt filsystem (som kan ligga på en lokal SSD, NFS eller EBS) eller ett S3-kompatibelt datalagringssystem.
    • För horisontell skalning stöder vi endast S3-kompatibla datalagringssystem.
    Viktigt: NFS/Amazon EFS/Amazon EBS stöds inte för horisontell skalning. Se avsnittet om hårdvarukrav för lagring om skalning av lagring i Server Pro för mer information.
  • Tillfälliga filer
    • LaTeX-kompileringar behöver köras på snabba, lokala diskar för optimal prestanda. Kompileringens utdata behöver inte lagras persistent eller säkerhetskopieras.
    • Buffring av nya filuppladdningar och skapande av zip-filer för projekt gynnas också av en lokal disk.
Vi rekommenderar starkt att du använder en lokal disk. Att använda någon form av nätverksdisk (som NFS eller EBS) kan leda till oväntade kompileringsfel och andra prestandaproblem.

Git-bridge

Git-bridge finns i Server Pro från och med version 4.0.1.
Git-repositoryn lagras lokalt på disk. Det finns inga replikeringsalternativ. Git-bridge ska köras som en singleton (en enda instans). För optimal prestanda rekommenderar vi en lokal disk för git-bridge-data. Datadisken för git-bridge bör säkerhetskopieras regelbundet. För datalagringen vid horisontell skalning behöver du:
  • en central MongoDB-instans som är åtkomlig från alla Server Pro-instanser
  • en central Redis-instans som är åtkomlig från alla Server Pro-instanser
  • en central S3-kompatibel lagringsbackend för projekt- och historikfiler
  • en lokal disk på varje instans för tillfälliga filer
  • en lokal disk på den instans som kör git-bridge-containern, för git-bridge-data

Krav på lastbalanseraren

  • Beständig routning (sticky sessions), t.ex. med en cookie Detta krav kommer från följande komponenter:
    • Realtidsredigeringen i Server Pro använder WebSockets med XHR-polling som reserv. Varje redigeringssession har lokalt tillstånd på serversidan, och förfrågningarna i en given redigeringssession måste alltid routas till samma Server Pro-instans. Samarbetsfunktionen använder Redis Pub/Sub för att dela uppdateringar mellan flera Server Pro-instanser.
    • LaTeX-kompileringen sparar utdata och kompileringscache lokalt för optimal prestanda. När en kompileringsförfrågan har skickats till en Server Pro-instans måste efterföljande förfrågningar om nedladdning av PDF/logg routas till samma Server Pro-instans.
  • Långa tidsgränser för förfrågningar för att stödja kompilering av stora LaTeX-dokument
  • Stöd för WebSocket för optimal prestanda
  • POST-nyttolast på 50 MB
  • Keep-alive-tidsgränsen måste vara lägre än keep-alive-tidsgränsen i Server Pro Keep-alive-tidsgränsen i Server Pro kan konfigureras med miljövariabeln NGINX_KEEPALIVE_TIMEOUT. Standardvärdet är 65 s. Med standardvärdet fungerar en keep-alive-tidsgräns på 60 s i lastbalanseraren. Med NGINX_KEEPALIVE_TIMEOUT=120 kan lastbalanseraren välja 115 s.
  • Klient-IP-adresser Sätt förfrågningshuvudet X-Forwarded-For till klientens IP-adress.
  • Vid SSL-terminering Lastbalanseraren måste lägga till förfrågningshuvudet X-Forwarded-Proto: https.

Konfiguration av Server Pro

Hemligheter Server Pro-instanserna måste använda samma delade hemligheter:
  • WEB_API_PASSWORD (autentisering för webb-API)
  • STAGING_PASSWORD och V1_HISTORY_PASSWORD med samma värde (autentisering för historik)
  • CRYPTO_RANDOM (för sessionscookien)
  • OT_JWT_AUTH_KEY (autentisering för historik)
Var och en av dessa hemligheter måste konfigureras med ett eget unikt värde och delas mellan instanserna. Om de inte är konfigurerade och användarförfrågningar routas till olika Server Pro-instanser misslyckas förfrågningarna vid autentiseringskontrollerna, och användarna omdirigeras antingen ofta till inloggningssidan eller så misslyckas deras åtgärder i gränssnittet på oväntade sätt. När de inte är konfigurerade använder Server Pro ett nytt slumpmässigt värde för varje hemlighet, baserat på 32 slumpmässiga byte från /dev/urandom (256 slumpmässiga bitar).
MongoDB Låt OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL för version 4.x och tidigare) peka på den centrala MongoDB-instansen. Redis Låt OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST för version 4.x och tidigare) och REDIS_HOST peka på den centrala Redis-instansen. S3-kompatibel lagring för projekt- och historikfiler Se dokumentationen om S3-kompatibel lagring för mer information. Tillfälliga filer Den förvalda bind-monteringen av en lokal SSD till /var/lib/overleaf (/var/lib/sharelatex för version 4.x och tidigare) räcker. Se till att låta SANDBOXED_COMPILES_HOST_DIR peka på monteringspunkten på värden.
Vi rekommenderar starkt att du använder en lokal disk. Att använda någon form av nätverksdisk (som NFS eller EBS) kan leda till oväntade kompileringsfel och andra prestandaproblem.
Proxykonfiguration
  • Sätt OVERLEAF_BEHIND_PROXY=true (SHARELATEX_BEHIND_PROXY för version 4.x och tidigare) för korrekta klient-IP-adresser.
  • Sätt TRUSTED_PROXY_IPS till lastbalanserarens IP-adress (flera CIDR-block kan anges, separerade med kommatecken).
Git-bridge-integration
Git-bridge finns i Server Pro från och med version 4.0.1.
Git-bridge-containern behöver en syskoncontainer med Server Pro för att hantera inkommande git-förfrågningar. Syskoncontainern kan även betjäna vanlig användartrafik. I exempelkonfigurationen fungerar den första instansen som syskoncontainer för git-bridge, men i praktiken kan vilken instans som helst fylla den rollen. Varför behöver vi utse en Server Pro-container som syskon till git-bridge? Server Pro delar ut nedladdnings-URL:er för historiktjänsten till git-bridge. Vi måste konfigurera dessa historik-URL:er så att de är åtkomliga från git-bridge-containern. Konfiguration av Server Pro-containern:
  • Sätt GIT_BRIDGE_ENABLED till 'true'
  • Sätt GIT_BRIDGE_HOST till <git-bridge container name>, t.ex. git-bridge
  • Sätt GIT_BRIDGE_PORT till 8000
  • Sätt V1_HISTORY_URL till http://<server-pro sibling container name>:3100/api. Obs: Detta behövs endast på syskoncontainern till git-bridge-containern. De övriga instanserna kan använda en localhost-URL, vilket är standard.
Konfiguration av git-bridge-containern:
  • Sätt GIT_BRIDGE_API_BASE_URL till http://<server-pro sibling container name>/api/v0, t.ex. http://server-pro-ha-1/api/v0
  • Sätt GIT_BRIDGE_OAUTH2_SERVER till http://<server-pro sibling container name>, t.ex. http://server-pro-ha-1
  • Sätt GIT_BRIDGE_POSTBACK_BASE_URL till http://<git-bridge container name>:8000, t.ex. http://git-bridge:8000
  • Sätt GIT_BRIDGE_ROOT_DIR till den bind-monterade datadisken för git-bridge, t.ex. /data/git-bridge
Följande konfiguration visar en fristående uppsättning. För att demon ska fungera måste du tillhandahålla en giltig SSL-nyckel/ett giltigt SSL-certifikat och justera OVERLEAF_SITE_URL (SHARELATEX_SITE_URL för version 4.x och tidigare). I en riktig uppsättning måste du ersätta platshållarhemligheterna med riktiga hemligheter, enligt kommentarerna i koden. I en riktig uppsättning behöver du också flytta de enskilda containrarna till dedikerade noder och anpassa IP-adresserna till ditt lokala nätverk.

Hårdvara

Vi rekommenderar att du använder samma hårdvaruspecifikationer för alla Server Pro-instanser som ingår i den horisontella skalningen. De allmänna rekommendationerna om hårdvaruspecifikationer för Server Pro-instanser gäller.

Uppgradera Server Pro

Som en del av uppgraderingsprocessen kör Server Pro automatiskt databasmigreringar. Dessa migreringar är inte utformade för att köras från flera instanser parallellt. Migreringarna måste slutföras innan själva webbapplikationen startas. Du kan antingen leta efter posten Finished migrations i loggarna eller vänta tills applikationen tar emot trafik. Uppgraderingsproceduren ser ut så här:
  1. Planera ett underhållsfönster
  2. Stoppa alla instanser av Server Pro
  3. Ta en konsekvent säkerhetskopia enligt beskrivningen i dokumentationen
  4. Starta en enda instans av Server Pro med den nya versionen
  5. Kontrollera att den nya instansen fungerar som förväntat
  6. Starta de övriga instanserna med den nya versionen
Senast ändrad 5 oktober 2026