Nginx 反向代理配置踩坑记录
上周给博客加 HTTPS 的时候遇到个坑,记录一下。
问题现象
配置完反向代理后,后端应用一直判断当前是 http 请求,导致生成的 URL 全是 http:// 开头,浏览器报混合内容错误。
排查过程
一开始以为是证书没配好,检查了半天发现证书没问题。后来看了后端日志,发现 X-Forwarded-Proto 头根本没传过去。
解决方法
在 Nginx 配置里加上:
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
重启 Nginx,问题解决。教训:proxy_set_header 宁可多写不要少写。