使用nginx or caddy反代其他cloudflare域名可能会无法访问, 原因是http请求中的Host并非代理的域名, 需要进行修改对应的Host, 同时该Host指定了连接cloudflare的sni,这样可以下发正确域名证书。
// caddy 部分
reverse_proxy https://www.xx.com {
header_up Host www.xx.com
header_up X-Real-IP {remote_remote} // 新增配置
header_up X-Forwarded-For {remote_remote}
header_up X-Forwarded-Proto {scheme}
}
// nginx
location / {
proxy_pass https://www.example.com;
proxy_ssl_protocols TLSv1.3;
proxy_set_header Host www.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Ssl on;
proxy_ssl_name www.example.com;
proxy_ssl_server_name on;
}