Ayakaleaf Pro는 수평 확장을 지원합니다. 여러 레플리카에서 올바르게 실행되는 것을 테스트하고 검증했습니다.
Server CE/Server Pro
5.0.3부터 환경 변수 이름이 SHARELATEX_*에서 OVERLEAF_*로 변경되었습니다.4.x 버전(또는 그 이전)을 사용하는 경우 변수에 올바른 접두사가 붙어 있는지 확인하세요(예: OVERLEAF_SITE_URL 대신 SHARELATEX_SITE_URL).요구 사항

외부 중앙 데이터 스토리지
Server Pro의 데이터 스토리지는 네 가지 데이터 저장소로 나눌 수 있습니다:-
MongoDB
- 대부분의 데이터는 MongoDB에 저장됩니다.
- 로컬 인스턴스 또는 MongoDB Atlas(AWS 인프라 내에서 실행되는 완전 관리형 MongoDB 서비스) 같은 외부 인스턴스를 지원합니다.
-
Redis
- Redis는 MongoDB로 플러시되기 전의 대기 중인 문서 업데이트 같은 임시 데이터를 저장합니다.
- Redis는 서로 다른 서비스 간에 문서 업데이트를 전달하고 특정 프로젝트의 상태 변경을 에디터에 알리는 데 사용됩니다.
- Redis는 사용자 세션을 저장하는 데 사용됩니다.
- 로컬 인스턴스 또는 외부 인스턴스를 지원합니다.
-
프로젝트 파일 및 기록 파일
- 편집할 수 없는 프로젝트 파일은 MongoDB 외부에 저장됩니다. 새로운 프로젝트 기록 시스템(Server Pro 3.5 이상)도 기록을 MongoDB 외부에 저장합니다.
- 소규모 단일 인스턴스의 경우 로컬 파일 시스템(로컬 SSD, NFS 또는 EBS 기반일 수 있음) 또는 S3 호환 데이터 스토리지 시스템을 지원합니다.
-
수평 확장의 경우 S3 호환 데이터 스토리지 시스템만 지원합니다.
-
임시 파일
- 최적의 성능을 위해 LaTeX 컴파일은 빠른 로컬 디스크에서 실행해야 합니다. 컴파일 출력은 영구 저장하거나 백업할 필요가 없습니다.
- 새 파일 업로드의 버퍼링과 프로젝트 zip 파일 생성도 로컬 디스크를 사용하면 이점이 있습니다.
로컬 디스크를 사용할 것을 강력히 권장합니다. 어떤 종류의 네트워크 디스크(NFS 또는 EBS 등)를 사용하든 예기치 않은 컴파일 오류 및 기타 성능 문제가 발생할 수 있습니다.
Git-bridge
Git-bridge는 버전 4.0.1부터 Server Pro에서 사용할 수 있습니다.
- 모든 Server Pro 인스턴스에서 접근할 수 있는 중앙 MongoDB 인스턴스
- 모든 Server Pro 인스턴스에서 접근할 수 있는 중앙 Redis 인스턴스
- 프로젝트 및 기록 파일을 위한 중앙 S3 호환 스토리지 백엔드
- 임시 파일을 위한 각 인스턴스의 로컬 디스크
- git-bridge 데이터를 위한, git-bridge 컨테이너를 호스팅하는 인스턴스의 로컬 디스크
로드 밸런서 요구 사항
-
영구 라우팅(예: 쿠키 사용)
이 요구 사항은 다음 구성 요소에서 비롯됩니다:
- Server Pro의 실시간 편집 기능은 WebSocket을 사용하며 XHR 폴링으로 폴백합니다. 각 편집 세션은 서버 측에 로컬 상태를 가지므로, 특정 편집 세션의 요청은 항상 같은 Server Pro 인스턴스로 라우팅되어야 합니다. 공동 작업 기능은 여러 Server Pro 인스턴스 간에 업데이트를 공유하기 위해 Redis Pub/Sub를 사용합니다.
- LaTeX 컴파일은 최적의 성능을 위해 출력과 컴파일 캐시를 로컬에 보관합니다. 한 Server Pro 인스턴스에 컴파일 요청을 보낸 후에는 이어지는 PDF/로그 다운로드 요청도 같은 Server Pro 인스턴스로 라우팅되어야 합니다.
- 큰 LaTeX 문서의 컴파일을 지원하기 위한 긴 요청 시간 제한
- 최적의 성능을 위한 WebSocket 지원
- 50MB의 POST 페이로드 크기
-
Keep-alive 시간 제한은 Server Pro의 keep-alive 시간 제한보다 짧아야 합니다
Server Pro의 keep-alive 시간 제한은 환경 변수
NGINX_KEEPALIVE_TIMEOUT으로 구성할 수 있습니다. 기본값은 65초입니다. 기본값을 사용하는 경우 로드 밸런서의 keep-alive 시간 제한은 60초로 설정하면 됩니다.NGINX_KEEPALIVE_TIMEOUT=120이면 로드 밸런서는 115초로 설정할 수 있습니다. -
클라이언트 IP
요청 헤더
X-Forwarded-For를 클라이언트 IP로 설정하세요. -
SSL 종료 시
로드 밸런서가 요청 헤더
X-Forwarded-Proto: https를 추가해야 합니다.
HAProxy 구성 예시
HAProxy 구성 예시
Server Pro 구성
시크릿 Server Pro 인스턴스들은 공유 시크릿에 합의해야 합니다:WEB_API_PASSWORD(web api 인증)STAGING_PASSWORD와V1_HISTORY_PASSWORD는 같은 값 (history 인증)CRYPTO_RANDOM(세션 쿠키용)OT_JWT_AUTH_KEY(history 인증)
/dev/urandom에서 얻은 32개의 무작위 바이트(256개의 무작위 비트)를 기반으로 새로운 무작위 값을 사용합니다.
OVERLEAF_MONGO_URL(4.x 이하 버전에서는 SHARELATEX_MONGO_URL)이 중앙 MongoDB 인스턴스를 가리키도록 설정하세요.
Redis
OVERLEAF_REDIS_HOST(4.x 이하 버전에서는 SHARELATEX_REDIS_HOST)와 REDIS_HOST가 중앙 Redis 인스턴스를 가리키도록 설정하세요.
프로젝트 및 기록 파일을 위한 S3 호환 스토리지
자세한 내용은 S3 호환 스토리지 문서를 참조하세요.
임시 파일
로컬 SSD를 /var/lib/overleaf(4.x 이하 버전에서는 /var/lib/sharelatex)에 바인드 마운트하는 기본 설정으로 충분합니다. SANDBOXED_COMPILES_HOST_DIR이 호스트의 마운트 지점을 가리키도록 설정하세요.
로컬 디스크를 사용할 것을 강력히 권장합니다. 어떤 종류의 네트워크 디스크(NFS 또는 EBS 등)를 사용하든 예기치 않은 컴파일 오류 및 기타 성능 문제가 발생할 수 있습니다.
- 정확한 클라이언트 IP를 위해
OVERLEAF_BEHIND_PROXY=true(4.x이하 버전에서는SHARELATEX_BEHIND_PROXY)를 설정하세요. TRUSTED_PROXY_IPS를 로드 밸런서의 IP로 설정하세요(쉼표로 구분하여 여러 CIDR을 지정할 수 있습니다).
Git-bridge는 버전 4.0.1부터 Server Pro에서 사용할 수 있습니다.
-
GIT_BRIDGE_ENABLED를'true'로 설정 -
GIT_BRIDGE_HOST를<git-bridge container name>으로 설정. 예:git-bridge -
GIT_BRIDGE_PORT를8000으로 설정 -
V1_HISTORY_URL을http://<server-pro sibling container name>:3100/api로 설정 참고: 이는 git-bridge 컨테이너의 형제 컨테이너에서만 필요합니다. 다른 인스턴스는 기본값인 localhost URL을 사용할 수 있습니다.
GIT_BRIDGE_API_BASE_URL을http://<server-pro sibling container name>/api/v0로 설정. 예:http://server-pro-ha-1/api/v0GIT_BRIDGE_OAUTH2_SERVER를http://<server-pro sibling container name>으로 설정. 예:http://server-pro-ha-1GIT_BRIDGE_POSTBACK_BASE_URL을http://<git-bridge container name>:8000으로 설정. 예:http://git-bridge:8000GIT_BRIDGE_ROOT_DIR을 바인드 마운트된 git-bridge 데이터 디스크로 설정. 예:/data/git-bridge
docker-compose.yml 구성 예시
docker-compose.yml 구성 예시
다음 구성은 자체 완결형 설정을 보여 줍니다. 데모가 작동하려면 유효한 SSL 키/인증서를 제공하고
OVERLEAF_SITE_URL(4.x 이하 버전에서는 SHARELATEX_SITE_URL)을 조정해야 합니다. 실제 설정에서는 인라인에 표시된 대로 더미 시크릿을 실제 시크릿으로 바꿔야 합니다. 또한 실제 설정에서는 개별 컨테이너를 전용 노드로 옮기고 IP 주소를 로컬 네트워크 설정에 맞게 조정해야 합니다.하드웨어
수평 확장에 참여하는 모든 Server Pro 인스턴스에 동일한 하드웨어 사양을 사용할 것을 권장합니다. Server Pro 인스턴스에 대한 일반적인 하드웨어 사양 권장 사항이 적용됩니다.Server Pro 업그레이드
업그레이드 과정의 일부로 Server Pro는 데이터베이스 마이그레이션을 자동으로 실행합니다. 이 마이그레이션은 여러 인스턴스에서 병렬로 실행되도록 설계되지 않았습니다. 마이그레이션은 실제 웹 애플리케이션이 시작되기 전에 완료되어야 합니다. 로그에서Finished migrations 항목을 확인하거나 애플리케이션이 트래픽을 받아들일 때까지 기다릴 수 있습니다.
업그레이드 절차는 다음과 같습니다:
- 유지 관리 시간을 예약합니다
- Server Pro의 모든 인스턴스를 중지합니다
- 문서에 설명된 대로 일관된 백업을 만듭니다
- 새 버전으로 Server Pro의 단일 인스턴스를 시작합니다
- 새 인스턴스가 예상대로 작동하는지 검증합니다
- 새 버전으로 나머지 인스턴스를 가동합니다

