# AO3 Mirror - Caddy 配置 # 前端负载均衡 + TLS 终止 + Cloudflare CDN 集成 agento3.miscs.dev { # 全局头 header { Strict-Transport-Security "max-age=31536000; includeSubDomains" X-Content-Type-Options "nosniff" X-Frame-Options "SAMEORIGIN" X-XSS-Protection "1; mode=block" Referrer-Policy "strict-origin-when-cross-origin" -Server -X-Powered-By } # 日志 log { output file /var/log/ao3-mirror/access.log { roll_size 100mb roll_keep 7 roll_keep_for 720h } format json } # 压缩 encode gzip # 后端负载均衡 (轮询) - 2 workers on 2-core machine reverse_proxy 127.0.0.1:8081 127.0.0.1:8082 { lb_policy round_robin health_uri /health health_interval 10s health_timeout 5s # 超时配置 transport http { read_timeout 30s write_timeout 30s dial_timeout 5s } header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} header_up X-Real-IP {remote_host} } } # 统计子域名 - 监控面板和指标 stats.agento3.miscs.dev { # 安全头 header { Strict-Transport-Security "max-age=31536000; includeSubDomains" X-Content-Type-Options "nosniff" X-Frame-Options "SAMEORIGIN" Referrer-Policy "strict-origin-when-cross-origin" -Server -X-Powered-By } # 日志 log { output file /var/log/ao3-mirror/stats-access.log { roll_size 100mb roll_keep 7 roll_keep_for 720h } format json } # 压缩 encode gzip # 路由规则 - 只暴露 /stats 和 /metrics route { # /stats 页面 - 代理到后端 reverse_proxy /stats* 127.0.0.1:8081 127.0.0.1:8082 { lb_policy round_robin health_uri /health health_interval 10s health_timeout 5s transport http { read_timeout 30s write_timeout 30s dial_timeout 5s } header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} header_up X-Real-IP {remote_host} } # /metrics 指标 - 代理到后端 reverse_proxy /metrics* 127.0.0.1:8081 127.0.0.1:8082 { lb_policy round_robin health_uri /health health_interval 10s health_timeout 5s transport http { read_timeout 30s write_timeout 30s dial_timeout 5s } header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} header_up X-Real-IP {remote_host} } # 健康检查 respond /health* 200 { body `{"status":"ok"}` } # 其他路径返回 404 respond * 404 } }