Ayakaleaf Pro tukee horisontaalista skaalausta. Olemme testanneet ja varmistaneet, että se toimii oikein useilla replikoilla.
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)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).
-
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.
-
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ä.
-
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.
- 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. AsetuksellaNGINX_KEEPALIVE_TIMEOUT=120kuormantasaaja voisi käyttää arvoa 115 s. -
Asiakkaiden IP-osoitteet
Aseta pyyntöotsake
X-Forwarded-Forasiakkaan IP-osoitteeksi. -
Kun SSL päätetään kuormantasaajassa
Kuormantasaajan on lisättävä pyyntöotsake
X-Forwarded-Proto: https.
Esimerkki HAProxy-määrityksestä
Esimerkki HAProxy-määrityksestä
Server Pron määritys
Salaisuudet Server Pro -instanssien on käytettävä yhteisiä jaettuja salaisuuksia:WEB_API_PASSWORD(web-API:n todennus)STAGING_PASSWORDjaV1_HISTORY_PASSWORDsamalla arvolla (historian todennus)CRYPTO_RANDOM(istuntoevästettä varten)OT_JWT_AUTH_KEY(historian todennus)
/dev/urandom (256 satunnaista bittiä).
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.
- Aseta
OVERLEAF_BEHIND_PROXY=true(SHARELATEX_BEHIND_PROXYversioissa4.xja vanhemmissa), jotta asiakkaiden IP-osoitteet ovat oikein. - Aseta
TRUSTED_PROXY_IPSkuormantasaajan IP-osoitteeksi (useita CIDR-alueita voidaan määrittää pilkuilla eroteltuina).
Git-bridge on saatavilla Server Prossa versiosta 4.0.1 alkaen.
-
Aseta
GIT_BRIDGE_ENABLEDarvoon'true' -
Aseta
GIT_BRIDGE_HOSTarvoon<git-bridge container name>, esim.git-bridge -
Aseta
GIT_BRIDGE_PORTarvoon8000 -
Aseta
V1_HISTORY_URLarvoonhttp://<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.
- Aseta
GIT_BRIDGE_API_BASE_URLarvoonhttp://<server-pro sibling container name>/api/v0, esim.http://server-pro-ha-1/api/v0 - Aseta
GIT_BRIDGE_OAUTH2_SERVERarvoonhttp://<server-pro sibling container name>, esim.http://server-pro-ha-1 - Aseta
GIT_BRIDGE_POSTBACK_BASE_URLarvoonhttp://<git-bridge container name>:8000, esim.http://git-bridge:8000 - Aseta
GIT_BRIDGE_ROOT_DIRbind-liitetylle git-bridgen datalevylle, esim./data/git-bridge
Esimerkki docker-compose.yml-määrityksestä
Esimerkki docker-compose.yml-määrityksestä
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änFinished migrations tai odottaa, kunnes sovellus ottaa vastaan liikennettä.
Päivitysmenettely on seuraava:
- Varaa huoltoikkuna
- Pysäytä kaikki Server Pron instanssit
- Ota johdonmukainen varmuuskopio dokumentaatiossa kuvatulla tavalla
- Käynnistä yksi Server Pron instanssi uudella versiolla
- Varmista, että uusi instanssi toimii odotetusti
- Käynnistä muut instanssit uudella versiolla

