一个神奇的 bug,苦思不得其解

2022-02-21 12:39:39 +08:00
 xmlf

环境: 使用 frp 内网穿透,公网服务器端口是 1485 在公网服务器 /etc/hosts 写入 www.xxx.com 127.0.0.1

Nginx 配置:

location = / {
        proxy_pass          http://www.xxx.com:1485/index/index;
        proxy_set_header Accept-Encoding "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_hide_header X-Powered-By;
        proxy_set_header Connection "upgrade";
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Forwarded-Proto https;
}

location / {
        proxy_pass          http://www.xxx.com:1485;
        proxy_set_header Accept-Encoding "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_hide_header X-Powered-By;
        proxy_set_header Connection "upgrade";
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Forwarded-Proto https;
}

网站运行 https,功能一切正常。

今天在调用微信 api 扫码登录时候,微信二维码死活不显示。

就开始排查,最终发现是

在 location = / 中的

proxy_set_header X-Forwarded-Proto https;

这个导致的。如果把这句注释掉,微信扫码登录二维码就能显示,否则一直在不停请求微信 api ,返回状态码 204 。

为什么会这样??有大佬了解的吗?

793 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835377

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX