Files
core2026_docker/caddy/Caddyfile
T
Hide_D 7af9c88c27 perf(caddy): 해시 빌드 자산에 장기 캐시를 적용
Vite content hash가 포함된 frontend asset만 1년 immutable로 제공한다. HTML, hash 없는 asset과 별도 image 경로는 기존 재검증 정책을 유지하고 matcher 회귀 테스트와 운영 문서를 추가한다.
2026-08-18 12:55:07 +00:00

93 lines
1.8 KiB
Caddyfile

{
email {$ACME_EMAIL}
log {
format filter {
request>headers>X-Session-Token delete
}
}
}
{$SITE_ADDRESS} {
encode zstd gzip
# Vite emits content-hashed files below each frontend's assets directory.
# Defer this header so it replaces vite preview's default no-cache value.
@immutableFrontendAssets path_regexp immutableFrontendAssets ^/(gateway|che|kwe|pwe|twe|nya|pya|hwe)/assets/.+-[A-Za-z0-9_-]{8}\.[^/]+$
header @immutableFrontendAssets >Cache-Control "public, max-age=31536000, immutable"
redir /gateway /gateway/ 308
redir /che /che/ 308
redir /kwe /kwe/ 308
redir /pwe /pwe/ 308
redir /twe /twe/ 308
redir /nya /nya/ 308
redir /pya /pya/ 308
redir /hwe /hwe/ 308
handle_path /image/* {
root * /srv/image
file_server
}
handle /gateway/api/trpc* {
reverse_proxy runtime:15001
}
handle /gateway/api/user-icons/* {
uri strip_prefix /gateway/api
reverse_proxy runtime:15001
}
handle /gateway/api/* {
uri strip_prefix /gateway/api
reverse_proxy runtime:15001
}
handle /gateway/* {
reverse_proxy runtime:15000
}
handle /che/api/* {
reverse_proxy runtime:15003
}
handle /che/* {
reverse_proxy runtime:15002
}
handle /kwe/api/* {
reverse_proxy runtime:15005
}
handle /kwe/* {
reverse_proxy runtime:15004
}
handle /pwe/api/* {
reverse_proxy runtime:15007
}
handle /pwe/* {
reverse_proxy runtime:15006
}
handle /twe/api/* {
reverse_proxy runtime:15009
}
handle /twe/* {
reverse_proxy runtime:15008
}
handle /nya/api/* {
reverse_proxy runtime:15011
}
handle /nya/* {
reverse_proxy runtime:15010
}
handle /pya/api/* {
reverse_proxy runtime:15013
}
handle /pya/* {
reverse_proxy runtime:15012
}
handle /hwe/api/* {
reverse_proxy runtime:15015
}
handle /hwe/* {
reverse_proxy runtime:15014
}
respond /healthz 200
redir / /gateway/ 302
}