关于反向代理的 X-Forwarded-Proto 参数

这里分享一个案例

在非80,443端口起了一些服务,通过 OpenResty 反向代理,在 CDN 上使用 http(80端口)进行回源。

这里存在一个问题

反向代理中有一条配置:

proxy_set_header X-Forwarded-Proto $scheme; 

OpenResty 在没有启用 HTTPS 的情况下会将 scheme 设为 http,这导致后端的应用会获取到错误的协议。

受影响的应用有

Logto、Halo部分插件 等(暂未发现更多)

解决方案

  • 删除此行代码,由前置代理提供 X-Forwarded-Proto

  • 手动指定协议:proxy_set_header X-Forwarded-Proto https;

特此记录供各位 debug 时留意。

ADs

1 个赞