问题
多个场景(多项目)配置重复冗余,维护困难。
结尾贴出配置
解决方案
三种配置模块,按需组合:
(main_backend) # 双后端负载均衡(common_config) # 通用安全配置(standard_site) # 组合上述两者应用场景
场景一:标准站点(需要负载均衡)
www.2345.com { import standard_site # 双后端 + 安全配置}场景二:单独服务器,不需要负载均衡
www.456.cc { reverse_proxy 192.168.100.3:80 # 专用后端 import common_config # 复用安全配置}场景三:简单重定向
2345.com { redir https://www.2345.com{uri} permanent # 无需额外配置}场景四:HTTP批量重定向
http://456g.cc, http://www.456g.cc { redir https://www.456.cc{uri} permanent # 多域名一次性配置}查看日志
(前 20 的访问统计):
cat /var/log/caddy/global.log | jq -r '.request.remote_ip' | sort | uniq -c | sort -nr | head -20配置分享
https://github.com/woniu336/open_shell/blob/main/Caddyfile
# ===========================================# 可复用配置片段# ===========================================# 主要后端配置(main_backend) { reverse_proxy { to 192.168.100.1:80 192.168.100.2:80 lb_policy round_robin lb_try_duration 30s lb_try_interval 250ms fail_duration 30s max_fails 3 unhealthy_status 5xx }}# 通用配置(common_config) { tls { protocols tls1.2 tls1.3 } header { Permissions-Policy interest-cohort=() Strict-Transport-Security max-age=31536000; X-Content-Type-Options nosniff Referrer-Policy strict-origin-when-cross-origin X-XSS-Protection "1; mode=block" -Via -Alt-Svc -Server } handle_errors { @5xx expression {http.error.status_code} >= 500 respond @5xx "服务暂时不可用,请稍后重试" 503 @4xx expression {http.error.status_code} >= 400 respond @4xx "请求错误" {http.error.status_code} } log { output file /var/log/caddy/global.log { roll_size 50mb roll_keep 5 } }}# 标准站点配置(standard_site) { import main_backend import common_config}# ===========================================# 站点配置# ===========================================2345.com { redir https://www.2345.com{uri} permanent}www.2345.com { import standard_site}789.cc { redir https://www.789.cc{uri} permanent}www.789.cc { import standard_site}456.cc { redir https://www.456.cc{uri} permanent}www.456.cc { reverse_proxy 192.168.100.3:80 import common_config}http://456g.cc, http://www.456g.cc { redir https://www.456.cc{uri} permanent}
评论 (0)