Nginx反代Cloudflare加速下的HTTPS站点

Posted on

常规反代配置

    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就可以正常访问了。

Attention:

  • 如果使用宝塔面板的反代,请注意proxy_ssl设置需要添加到每一种需要反代的文件类型的location /下,否则会出现首页返回200成功状态码,但引用的js、css、图片的资源依然返回502 Bad Request状态码,从而导致页面显示不完全。
  • 如果反代站与源站域名不同可尝试将Nginx配置中所有的$host修改为源站域名,如上述示例就可以修改为abc.com

添加新评论