常规反代配置
location /
{
proxy_pass https://abc.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
当使用该配置反向代理Cloudflare全站加速下的 HTTPS 站点时,反向代理服务器需要通过 HTTPS 443 端口访问 Cloudflare。然而,当访问 https://abc.com 时,可能会出现 502 Bad Request 错误。为了解决这个问题,我们需要添加两行 proxy_ssl 设置。
proxy_ssl_name $host;
proxy_ssl_server_name on;
修改后的反代配置为
location /
{
proxy_pass https://abc.com;
proxy_ssl_name $host;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
这样再次访问 https://abc.com 就可以正常访问了。
如果您使用宝塔面板的反向代理功能,请确保将 proxy_ssl 设置添加到每个需要反向代理的文件类型的 location /下。否则,首页可能会返回 200 成功状态码,但是引用的 js、css和图片资源仍然会返回 502 Bad Request 状态码,导致页面显示不完整。
如果反向代理站点与源站的域名不同,您可以尝试将 nginx 配置中的所有$host 修改为源站的域名。例如,上述示例中可以将其修改为 abc.com。
转载请注明:汇站网 » 使用 Nginx 反向代理 Cloudflare 加速的 HTTPS 站点