Traefik
Traefik을 리버스 프록시 및 로드 밸런서로 사용하여 자동 SSL/TLS 인증서 관리와 함께 HTTPS를 통해 LibreChat 인스턴스를 안전하게 노출하는 방법을 알아보세요.
Traefik는 서비스 배포 및 관리를 간편하게 만들어 주는 최신 HTTP 리버스 프록시이자 로드 밸런서입니다. Docker에서 LibreChat을 실행 중이라면, Traefik을 사용하여 자동 SSL 인증서 관리와 함께 HTTPS를 통해 안전하게 인스턴스를 노출할 수 있습니다.
필수 조건
- 시스템에 설치된 Docker 및 Docker Compose
- 서버의 IP 주소를 가리키는 도메인 이름
구성
Traefik 및 LibreChat 구성
docker-compose.override.yml 파일에 다음 구성을 추가하세요:
version: '3'
services:
api:
labels:
- "traefik.enable=true"
- "traefik.http.routers.librechat.rule=Host(`your.domain.name`)"
- "traefik.http.routers.librechat.entrypoints=websecure"
- "traefik.http.routers.librechat.tls.certresolver=leresolver"
- "traefik.http.services.librechat.loadbalancer.server.port=3080"
networks:
- librechat_default
volumes:
- ./librechat.yaml:/app/librechat.yaml
traefik:
image: traefik:v3.6
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
networks:
- librechat_default
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.leresolver.acme.tlschallenge=true"
- "[email protected]"
- "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"
# other configs here #
# NOTE: This needs to be at the bottom of your docker-compose.override.yml
networks:
librechat_default:
external: trueLet's Encrypt 인증서 알림을 받을 이메일 주소로 [email protected]을(를) 변경하세요.
자세한 내용은 Docker Override를 참조하세요.
컨테이너 시작하기
docker compose up -d이 명령은 Traefik 및 LibreChat 컨테이너를 시작합니다. Traefik은 Let's Encrypt로부터 SSL/TLS 인증서를 자동으로 획득하여 HTTPS를 통해 LibreChat 인스턴스를 안전하게 노출합니다.
이제 https://your.domain.name에서 LibreChat 인스턴스에 액세스할 수 있습니다. Traefik이 SSL/TLS 종료를 처리하고 LibreChat 컨테이너로 요청을 리버스 프록시합니다.
추가 참고 사항
- Traefik 구성은 HTTP 및 HTTPS 트래픽을 위해 각각 80번과 443번 포트에서 수신 대기합니다. 서버의 방화벽에서 해당 포트들이 열려 있는지 확인하십시오.
- Traefik은 SSL/TLS 인증서를 호스트 머신의
./letsencrypt디렉토리에 저장합니다. 이 디렉토리를 주기적으로 백업하는 것이 좋습니다. - 더 고급 구성 옵션에 대해서는 공식 Traefik 문서를 참조하세요: https://doc.traefik.io/
정적 파일 캐싱 및 압축
LibreChat은 이제 정적 파일 캐싱 및 압축을 기본적으로 지원합니다. Traefik을 사용하여 압축을 처리하는 경우, 중복 처리를 방지하기 위해 LibreChat에서 압축을 비활성화해야 합니다. LibreChat 설정에서 DISABLE_COMPRESSION 환경 변수를 true로 설정하여 이를 수행할 수 있습니다.
# .env file
DISABLE_COMPRESSION=true이렇게 하면 LibreChat이 정적 파일을 압축하지 않게 되어, Traefik이 더 효율적으로 압축을 처리할 수 있습니다.
LibreChat에서의 정적 파일 처리 및 캐싱 옵션에 대한 자세한 내용은 Static File Handling 문서를 참조하세요.
이 가이드는 어떤가요?