Files
goldenChart/scripts/exdev-caddy-coexist.Caddyfile
T
2026-06-17 10:00:34 +09:00

80 lines
2.4 KiB
Caddyfile

# exdev.co.kr — GoldenChart + Chatbot HTTPS 공존 (Caddy v2 예시)
#
# 원칙:
# - 443 포트는 Caddy만 사용 (gc-frontend·chatbot은 443 바인딩 금지)
# - GoldenChart: 호스트/ Docker gc-frontend :80
# - Chatbot: 별도 컨테이너 내부 포트 (아래 CHATBOT_UPSTREAM 수정)
#
# 설치 위치 (ex-chatbot 프로젝트): docker/nginx/Caddyfile 또는 Caddyfile
# 적용 후: docker compose restart caddy (프로젝트명에 맞게 조정)
#
# 검증:
# curl -sS -o /dev/null -w "GC HTTPS %{size_download}\n" https://exdev.co.kr/
# curl -sS -o /dev/null -w "CB HTTPS %{size_download}\n" https://exdev.co.kr/chatbot/
# ./scripts/verify-desktop-updater-endpoint.sh
{
# HTTP/2·HTTP/3 — 본문 버퍼링 이슈 완화
servers {
protocols h1 h2 h3
}
}
(exdev_tls) {
# Let's Encrypt — ex-chatbot obtain-cert-exdev.sh 로 발급한 인증서 경로에 맞게 수정
tls /etc/caddy/certs/fullchain.pem /etc/caddy/certs/privkey.pem
}
# ── Chatbot upstream (실제 포트·호스트명은 환경에 맞게) ─────────────────────
# Docker: chatbot 컨테이너명:내부포트 / 호스트: host.docker.internal:PORT
(chatbot_upstream) {
reverse_proxy host.docker.internal:8081 {
flush_interval -1
transport http {
versions 1.1 2
}
header_up Host {host}
header_up X-Forwarded-Proto https
header_up X-Forwarded-Prefix /chatbot
}
}
# ── GoldenChart (gc-frontend nginx :80) ─────────────────────────────────────
(goldenchart_upstream) {
reverse_proxy host.docker.internal:80 {
flush_interval -1
transport http {
versions 1.1 2
}
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto https
}
}
exdev.co.kr {
import exdev_tls
# 1) Chatbot — /chatbot/* (경로 유지; 앱이 /chatbot base path 를 기대할 때)
@chatbot path /chatbot /chatbot/*
handle @chatbot {
import chatbot_upstream
}
# 2) GoldenChart — 나머지 전부 (SPA, /api 는 nginx→backend, /desktop/updates 등)
handle {
import goldenchart_upstream
}
}
# ── 대안: 서브도메인 분리 (경로 충돌이 없어 운영이 단순함) ─────────────────────
# chat.exdev.co.kr {
# import exdev_tls
# import chatbot_upstream
# }
# chart.exdev.co.kr {
# import exdev_tls
# import goldenchart_upstream
# }