Traefik
Tìm hiểu cách sử dụng Traefik làm reverse proxy và bộ cân bằng tải để hiển thị instance LibreChat của bạn một cách an toàn qua HTTPS với tính năng quản lý chứng chỉ SSL/TLS tự động.
Traefik là một reverse proxy HTTP và bộ cân bằng tải hiện đại giúp việc triển khai và quản lý các dịch vụ của bạn trở nên dễ dàng. Nếu bạn đang chạy LibreChat trên Docker, bạn có thể sử dụng Traefik để công khai instance của mình một cách an toàn qua HTTPS với tính năng quản lý chứng chỉ SSL tự động.
Điều kiện tiên quyết
- Docker và Docker Compose đã được cài đặt trên hệ thống của bạn
- Một tên miền trỏ đến địa chỉ IP máy chủ của bạn
Cấu hình
Cấu hình Traefik và LibreChat
Trong tệp docker-compose.override.yml của bạn, hãy thêm cấu hình sau:
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: trueThay thế [email protected] bằng địa chỉ email của bạn để nhận thông báo chứng chỉ Let's Encrypt.
xem: Docker Override để biết thêm thông tin.
Khởi động các container
docker compose up -dThao tác này sẽ khởi chạy các container Traefik và LibreChat. Traefik sẽ tự động lấy chứng chỉ SSL/TLS từ Let's Encrypt và hiển thị instance LibreChat của bạn một cách an toàn qua HTTPS.
Giờ đây, bạn có thể truy cập vào instance LibreChat của mình tại https://your.domain.name. Traefik sẽ xử lý việc chấm dứt SSL/TLS và chuyển tiếp các yêu cầu proxy ngược đến container LibreChat của bạn.
Các lưu ý bổ sung
- Cấu hình Traefik lắng nghe trên các cổng 80 và 443 lần lượt cho lưu lượng HTTP và HTTPS. Hãy đảm bảo rằng các cổng này đã được mở trên tường lửa của máy chủ.
- Traefik lưu trữ các chứng chỉ SSL/TLS trong thư mục
./letsencrypttrên máy chủ của bạn. Bạn có thể muốn sao lưu thư mục này định kỳ. - Để biết thêm các tùy chọn cấu hình nâng cao, hãy tham khảo tài liệu chính thức của Traefik: https://doc.traefik.io/
Bộ nhớ đệm và nén tệp tĩnh
LibreChat hiện đã hỗ trợ bộ nhớ đệm tệp tĩnh và nén một cách nguyên bản. Nếu bạn đang sử dụng Traefik để xử lý nén, bạn nên tắt tính năng nén trong LibreChat để tránh xử lý dư thừa. Bạn có thể thực hiện việc này bằng cách đặt biến môi trường DISABLE_COMPRESSION thành true trong cấu hình LibreChat của bạn.
# .env file
DISABLE_COMPRESSION=trueĐiều này sẽ ngăn LibreChat nén các tệp tĩnh, cho phép Traefik xử lý việc nén hiệu quả hơn.
Để biết thêm thông tin về cách xử lý tệp tĩnh trong LibreChat, bao gồm các tùy chọn bộ nhớ đệm, hãy tham khảo tài liệu Static File Handling.
Hướng dẫn này thế nào?