Symfony 5.4中HEADER_X_FORWARDED_ALL弃用后的替代方案咨询
Symfony 5.4 替换 HEADER_X_FORWARDED_ALL 解决弃用提示
- 不需要逐个调用
setTrustedProxies,一次调用就能完成配置,直接用Symfony提供的组合常量或ELB专用常量即可。 - 你的应用部署在AWS ELB后,单独用HEADER_X_FORWARDED_FOR是不够的——这个常量仅让应用信任客户端IP的转发头,但ELB还会转发主机名、请求协议(HTTP/HTTPS)、端口等关键信息,这些对应用生成正确链接、判断请求安全状态至关重要,只设置FOR会导致部分功能异常。
- 最简便的方案是直接使用ELB专用预定义常量
Request::HEADER_X_FORWARDED_AWS_ELB,它包含了ELB会转发的所有必要头信息,修改后的代码如下:
Request::setTrustedProxies( [$request->server->get('REMOTE_ADDR')], Request::HEADER_X_FORWARDED_AWS_ELB );
- 如果不想用专用常量,也可以手动组合所需的头常量,ELB常用的转发头对应的常量组合为:
Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_PORT
将上述组合作为第二个参数传入setTrustedProxies即可,效果和专用常量一致。
内容的提问来源于stack exchange,提问作者crmpicco
相关产品推荐
相关产品推荐

