webmail走CF,mail只申请证书,然后挂载caddy的data卷给mailserver,直接读取证书。
虽然邮件服务器内部多半能自己去申请证书,但这带来了复杂度。不如让caddy搞定全部。
我用的是smartermail。
注释都是AI老师加的😂
webmail.domain.com { header Strict-Transport-Security max-age=31536000; # 直接转发到宿主机的 8080 端口 reverse_proxy 127.0.0.1:8080 { # 只需手动补全 X-Real-IP,其他的 Caddy 都会自动搞定 header_up X-Real-IP {remote_host} # --- 核心改进:头部透传 --- # 传递客户端真实 IP,对应 Nginx 的 proxy_set_header X-Real-IP # --- 核心改进:长连接与超时 (针对 ActiveSync) --- transport http { # 保持连接时间,防止长轮询中断 # 响应头超时 response_header_timeout 3600s } }}mail.domain.com { # 2. Mail 域名 (仅获取证书) # 这一行是个小技巧:respond 只要存在,Caddy 就会自动申请并管理证书 # 但我们实际上不通过 Caddy 走 SMTP 流量,所以这里配什么 HTTP 响应不重要 respond "This is the mail server SSL endpoint" 200}caddy的docker-compose部分:
network_mode: "host" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - /opt/nxcloud/caddy_data:/data - /opt/nxcloud/caddy_config:/configsmartermail的部分
volumes: - /opt/smartermail/Data:/app/Data - /opt/smartermail/SystemData:/app/SystemData - /opt/nxcloud/caddy_data:/caddy-certs:rovolumes: caddy_data:
评论 (0)