Nginx转发到https

使用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;
}
CodeCrafter 版权所有
使用 Hugo 构建
主题 StackJimmy 设计