Skip to main content
Ayakaleaf Pro tukee horisontaalista skaalausta. Olemme testanneet ja varmistaneet, että se toimii oikein useilla replikoilla.
Tässä dokumentissa luetellaan tekniset vaatimukset ja annetaan ohjeita Ayakaleaf Pron ajamiseen useammalla kuin yhdellä solmulla.
Server CE:n/Server Pron versiosta 5.0.3 alkaen ympäristömuuttujien etuliite on muutettu muodosta SHARELATEX_* muotoon OVERLEAF_*.Jos käytät versiota 4.x (tai vanhempaa), varmista, että muuttujissa on oikea etuliite (esim. SHARELATEX_SITE_URL eikä OVERLEAF_SITE_URL)
Horisontaalisen skaalauksen pystyttäminen vaatii huomattavan paljon työtä. Suosittelemme harkitsemaan horisontaalista skaalausta vasta tietyn mittakaavan saavuttamisen jälkeen. Esimerkiksi 1 000 käyttäjän Server Pro -asennus on pystytetty onnistuneesti yhdelle palvelimelle, jossa on kaksi 4-ytimistä suoritinta ja 32 Gt keskusmuistia. Suosituksia on laitteistovaatimusten dokumentaatiossa. Horisontaalisesti skaalattu Server Pro -käyttöönotto sisältää joukon ulkoisia komponentteja, kuten kuormantasaajan ja S3-yhteensopivan tallennustaustajärjestelmän. Voimme auttaa selvittämään Server Pro -konttien virheitä, jotka saattavat johtua virheellisestä määrityksestä, ja antaa yleisiä neuvoja tämän dokumentin perusteella. Valitettavasti emme voi auttaa kolmansien osapuolten sovellusten tai järjestelmien määrittämisessä. Tukiehtomme eivät kata ulkoisten komponenttien tarjoamiseen käytettävään laitteistoosi tai ohjelmistoosi liittyvien teknisten ongelmien ratkaisemista.

Vaatimukset

Ulkoinen, keskitetty tallennustila

Server Pron tietojen tallennus voidaan jakaa neljään tietovarastoon:
  • MongoDB
    • Suurin osa tiedoista tallennetaan pysyvästi MongoDB:hen.
    • Tuemme joko paikallista instanssia tai ulkoista instanssia, kuten MongoDB Atlasta (täysin hallinnoitu MongoDB-palvelu, joka toimii AWS-infrastruktuurissa).
    Huomaa: Valitettavasti MongoDB-yhteensopiville tietokannoille, kuten CosmoDB/DocumentDB, ei tällä hetkellä ole virallista tukea, koska emme ole testanneet Server Prota niiden kanssa. Vaikka Server Pron käyttöönotto yhteensopivilla tietokannoilla voi olla mahdollista, tuemme virallisesti vain MongoDB:tä käyttäviä käyttöönottoja.
  • Redis
    • Redis tallentaa väliaikaisia tietoja, kuten odottavia dokumenttipäivityksiä ennen kuin ne siirretään MongoDB:hen.
    • Redisiä käytetään dokumenttipäivitysten välittämiseen eri palveluiden välillä ja editorin ilmoittamiseen tietyn projektin tilamuutoksista.
    • Redisiä käytetään käyttäjäistuntojen tallentamiseen.
    • Tuemme joko paikallista instanssia tai ulkoista instanssia.
    Huomaa: Valitettavasti Redis-yhteensopiville avain-arvovarastoille, kuten KeyDB/Valkey, ei tällä hetkellä ole virallista tukea, koska emme ole testanneet Server Prota niiden kanssa. Vaikka Server Pron käyttöönotto yhteensopivilla varastoilla voi olla mahdollista, tuemme virallisesti vain Redisiä käyttäviä käyttöönottoja.
  • Projektitiedostot ja historiatiedostot
    • Ei-muokattavat projektitiedostot tallennetaan MongoDB:n ulkopuolelle. Uusi projektihistoriajärjestelmä (Server Pro 3.5:stä alkaen) tallentaa myös historian MongoDB:n ulkopuolelle.
    • Pienille yksittäisille instansseille tuemme joko paikallista tiedostojärjestelmää (jonka taustalla voi olla paikallinen SSD, NFS tai EBS) tai S3-yhteensopivaa tallennusjärjestelmää.
    • Horisontaalisessa skaalauksessa tuemme vain S3-yhteensopivia tallennusjärjestelmiä.
    Tärkeää: NFS/Amazon EFS/Amazon EBS eivät ole tuettuja horisontaalisessa skaalauksessa. Lisätietoja Server Pron tallennustilan skaalaamisesta on laitteiston tallennustilan vaatimuksia käsittelevässä osiossa.
  • Tilapäiset tiedostot
    • LaTeX-käännökset on parhaan suorituskyvyn saavuttamiseksi ajettava nopeilla paikallisilla levyillä. Käännöksen tulostetta ei tarvitse tallentaa pysyvästi eikä varmuuskopioida.
    • Myös uusien tiedostolatausten puskurointi ja projektien zip-tiedostojen luominen hyötyvät paikallisen levyn käytöstä.
Suosittelemme vahvasti paikallisen levyn käyttöä. Minkä tahansa verkkolevyn (kuten NFS tai EBS) käyttö voi aiheuttaa odottamattomia käännösvirheitä ja muita suorituskykyongelmia.

Git-bridge

Git-bridge on saatavilla Server Prossa versiosta 4.0.1 alkaen.
Git-repositoriot tallennetaan paikallisesti levylle. Replikointivaihtoehtoja ei ole saatavilla. Git-bridgeä tulee ajaa yksittäisenä instanssina (singleton). Parhaan suorituskyvyn saavuttamiseksi suosittelemme paikallisen levyn käyttöä git-bridgen tiedoille. Git-bridgen datalevy tulee varmuuskopioida säännöllisesti. Horisontaalisessa skaalauksessa tietojen tallennukseen tarvitset:
  • keskitetyn MongoDB-instanssin, johon pääsee kaikista Server Pro -instansseista
  • keskitetyn Redis-instanssin, johon pääsee kaikista Server Pro -instansseista
  • keskitetyn S3-yhteensopivan tallennustaustajärjestelmän projekti- ja historiatiedostoille
  • paikallisen levyn jokaisessa instanssissa tilapäisille tiedostoille
  • paikallisen levyn git-bridge-konttia isännöivässä instanssissa git-bridgen tiedoille

Kuormantasaajan vaatimukset

  • Pysyvä reititys, esim. evästeen avulla Tämä vaatimus johtuu seuraavista komponenteista:
    • Server Pron reaaliaikainen muokkausominaisuus käyttää WebSocket-yhteyksiä, ja varavaihtoehtona on XHR-kysely (polling). Jokaisella muokkausistunnolla on palvelinpuolella paikallinen tila, ja tietyn muokkausistunnon pyynnöt on aina reititettävä samaan Server Pro -instanssiin. Yhteistyöominaisuus käyttää Redisin Pub/Sub-toimintoa päivitysten jakamiseen useiden Server Pro -instanssien välillä.
    • LaTeX-käännös säilyttää tulosteen ja käännösvälimuistin paikallisesti suorituskyvyn optimoimiseksi. Kun käännöspyyntö on lähetetty yhdelle Server Pro -instanssille, sitä seuraavat PDF- ja lokilatauspyynnöt on reititettävä samaan Server Pro -instanssiin.
  • Pitkät pyyntöjen aikakatkaisut suurten LaTeX-dokumenttien kääntämisen tukemiseksi
  • WebSocket-tuki parhaan suorituskyvyn saavuttamiseksi
  • POST-hyötykuorman koko 50 Mt
  • Keep-alive-aikakatkaisun on oltava lyhyempi kuin Server Pron keep-alive-aikakatkaisu Server Pron keep-alive-aikakatkaisu voidaan määrittää ympäristömuuttujalla NGINX_KEEPALIVE_TIMEOUT. Oletusarvo on 65 s. Oletusarvolla kuormantasaajan 60 sekunnin keep-alive-aikakatkaisu toimii. Asetuksella NGINX_KEEPALIVE_TIMEOUT=120 kuormantasaaja voisi käyttää arvoa 115 s.
  • Asiakkaiden IP-osoitteet Aseta pyyntöotsake X-Forwarded-For asiakkaan IP-osoitteeksi.
  • Kun SSL päätetään kuormantasaajassa Kuormantasaajan on lisättävä pyyntöotsake X-Forwarded-Proto: https.

Server Pron määritys

Salaisuudet Server Pro -instanssien on käytettävä yhteisiä jaettuja salaisuuksia:
  • WEB_API_PASSWORD (web-API:n todennus)
  • STAGING_PASSWORD ja V1_HISTORY_PASSWORD samalla arvolla (historian todennus)
  • CRYPTO_RANDOM (istuntoevästettä varten)
  • OT_JWT_AUTH_KEY (historian todennus)
Kaikille näille salaisuuksille on määritettävä oma yksilöllinen arvonsa, ja arvot on jaettava instanssien kesken. Jos niitä ei ole määritetty ja käyttäjien pyynnöt reititetään eri Server Pro -instansseihin, pyynnöt eivät läpäise todennustarkistuksia, ja käyttäjät joko ohjataan toistuvasti kirjautumissivulle tai heidän toimintonsa käyttöliittymässä epäonnistuvat odottamattomilla tavoilla. Jos niitä ei ole määritetty, Server Pro käyttää jokaiselle salaisuudelle uutta satunnaista arvoa, joka perustuu 32 satunnaiseen tavuun laitteesta /dev/urandom (256 satunnaista bittiä).
MongoDB Osoita OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL versioissa 4.x ja vanhemmissa) keskitettyyn MongoDB-instanssiin. Redis Osoita OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST versioissa 4.x ja vanhemmissa) ja REDIS_HOST keskitettyyn Redis-instanssiin. S3-yhteensopiva tallennustila projekti- ja historiatiedostoille Lisätietoja on S3-yhteensopivaa tallennustilaa käsittelevässä dokumentaatiossa. Tilapäiset tiedostot Paikallisen SSD-levyn oletusarvoinen bind-liitos hakemistoon /var/lib/overleaf (/var/lib/sharelatex versioissa 4.x ja vanhemmissa) riittää. Muista osoittaa SANDBOXED_COMPILES_HOST_DIR isäntäkoneen liitoskohtaan.
Suosittelemme vahvasti paikallisen levyn käyttöä. Minkä tahansa verkkolevyn (kuten NFS tai EBS) käyttö voi aiheuttaa odottamattomia käännösvirheitä ja muita suorituskykyongelmia.
Välityspalvelimen määritys
  • Aseta OVERLEAF_BEHIND_PROXY=true (SHARELATEX_BEHIND_PROXY versioissa 4.x ja vanhemmissa), jotta asiakkaiden IP-osoitteet ovat oikein.
  • Aseta TRUSTED_PROXY_IPS kuormantasaajan IP-osoitteeksi (useita CIDR-alueita voidaan määrittää pilkuilla eroteltuina).
Git-bridge-integraatio
Git-bridge on saatavilla Server Prossa versiosta 4.0.1 alkaen.
Git-bridge-kontti tarvitsee rinnakkaisen (sibling) Server Pro -kontin saapuvien git-pyyntöjen käsittelyyn. Tämä rinnakkainen kontti voi palvella myös tavallista käyttäjäliikennettä. Esimerkkimäärityksessä ensimmäinen instanssi toimii git-bridgen rinnakkaisena konttina, mutta käytännössä mikä tahansa instanssi voisi toimia siinä roolissa. Miksi yksi Server Pro -kontti on nimettävä git-bridgen rinnakkaiseksi kontiksi? Server Pro antaa git-bridgelle historiapalvelun latausosoitteita. Nämä historia-URL-osoitteet on määritettävä siten, että niihin pääsee git-bridge-kontista. Server Pro -kontin määritys:
  • Aseta GIT_BRIDGE_ENABLED arvoon 'true'
  • Aseta GIT_BRIDGE_HOST arvoon <git-bridge container name>, esim. git-bridge
  • Aseta GIT_BRIDGE_PORT arvoon 8000
  • Aseta V1_HISTORY_URL arvoon http://<server-pro sibling container name>:3100/api. Huomaa: Tämä on tarpeen vain git-bridge-kontin rinnakkaisessa kontissa. Muut instanssit voivat käyttää localhost-URL-osoitetta, joka on oletus.
git-bridge-kontin määritys:
  • Aseta GIT_BRIDGE_API_BASE_URL arvoon http://<server-pro sibling container name>/api/v0, esim. http://server-pro-ha-1/api/v0
  • Aseta GIT_BRIDGE_OAUTH2_SERVER arvoon http://<server-pro sibling container name>, esim. http://server-pro-ha-1
  • Aseta GIT_BRIDGE_POSTBACK_BASE_URL arvoon http://<git-bridge container name>:8000, esim. http://git-bridge:8000
  • Aseta GIT_BRIDGE_ROOT_DIR bind-liitetylle git-bridgen datalevylle, esim. /data/git-bridge
Seuraava määritys esittää itsenäisen kokoonpanon. Jotta esittely toimisi, sinun on annettava kelvollinen SSL-avain/-varmenne ja muutettava OVERLEAF_SITE_URL (SHARELATEX_SITE_URL versioissa 4.x ja vanhemmissa). Todellisessa kokoonpanossa sinun on korvattava malliksi annetut salaisuudet oikeilla salaisuuksilla, kuten tekstin sisällä on mainittu. Todellisessa kokoonpanossa sinun on siirrettävä yksittäiset kontit omille solmuilleen ja mukautettava IP-osoitteet paikallisen verkkosi kokoonpanoon.

Laitteisto

Suosittelemme käyttämään samoja laitteistomäärityksiä kaikissa horisontaaliseen skaalaukseen osallistuvissa Server Pro -instansseissa. Server Pro -instansseja koskevat yleiset laitteistomäärityksiä koskevat suositukset ovat voimassa.

Server Pron päivittäminen

Osana päivitysprosessia Server Pro suorittaa automaattisesti tietokantasiirrot (migrations). Näitä siirtoja ei ole suunniteltu suoritettaviksi useista instansseista rinnakkain. Siirtojen on valmistuttava ennen varsinaisen verkkosovelluksen käynnistymistä. Voit joko tarkistaa lokeista merkinnän Finished migrations tai odottaa, kunnes sovellus ottaa vastaan liikennettä. Päivitysmenettely on seuraava:
  1. Varaa huoltoikkuna
  2. Pysäytä kaikki Server Pron instanssit
  3. Ota johdonmukainen varmuuskopio dokumentaatiossa kuvatulla tavalla
  4. Käynnistä yksi Server Pron instanssi uudella versiolla
  5. Varmista, että uusi instanssi toimii odotetusti
  6. Käynnistä muut instanssit uudella versiolla
Viimeksi muokattu 5. lokakuuta 2026