haproxy-https-to-http

haproxy 把https转发的时候变成了http

今天接微信API的时候,发现一个很奇怪的问题,本地调试都ok,一旦部署到线上就出问题,后来经过仔细排查,发现我们网站用的是https,很奇怪,haproxy转发的时候会把https转化成http,这是bug吗?待续。

后来证实,这不是haproxy的bug.是由于我们项目使用的是nodejssails框架导致的。

使用express的nodejs应用程序,需要注意,使用代理服务器转发的时候,获取请求协议的时候正确的取值方法是req.headers[‘x-forwarded-proto’],直接取值req.protocol取得值是http,在接入微信授权的时候,本地调试都正常,一旦部署到线上(https),就会提示:config: invalid signature。所以当接入微信API,本地调试一切正常,到线上(https)部署后发现不正常,就应当检查一下授权的地址协议是否正确。

referrer:

https://github.com/nodejs/node-v0.x-archive/issues/6735
https://github.com/expressjs/express/issues/1863

粤ICP备18054847号-2
本站总访问量次 本站访客数人 本文总阅读量
{% if theme.baidu_push %} {% endif %}