You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8升级Laravel 9:Trusted Proxies相关疑问

Laravel 8 升级到 9:TrustProxies 中间件是否需要修改?

直接升级现有代码库的话,完全不需要修改app/Http/Middleware/TrustProxies.php,官方升级指南的说明是准确的,没有错误。

原因说明:

  • Laravel 9 在直接升级现有项目时,会兼容旧版的 fideloper/trustproxy 包实现,不会强制替换你已有的中间件文件。
  • 你当前的 protected $headers = Request::HEADER_X_FORWARDED_ALL; 配置,在升级后的 Laravel 9 环境中依然能正常工作,不会影响代理相关的功能。
  • 指南里提到的「需要修改」场景,仅针对将旧项目代码导入全新 Laravel 9 应用骨架的情况——因为全新的 Laravel 9 骨架默认使用的是 Illuminate 版本的 TrustProxies 中间件,这时候才需要同步调整你的代码适配新骨架的结构。

(可选)主动升级到 Illuminate 版本的 TrustProxies

如果你想主动切换到 Laravel 9 原生的中间件实现,可以做以下调整:

  1. 替换命名空间:
    // 旧代码
    use Fideloper\Proxy\TrustProxies as Middleware;
    
    // 替换为
    use Illuminate\Http\Middleware\TrustProxies as Middleware;
    
  2. 保持 headers 配置等价性:
    原来的 Request::HEADER_X_FORWARDED_ALL 可以直接替换为 Illuminate 请求类的常量,或者展开为等价的组合:
    protected $headers = \Illuminate\Http\Request::HEADER_X_FORWARDED_ALL;
    // 或者等价写法
    protected $headers = \Illuminate\Http\Request::HEADER_X_FORWARDED_FOR | 
                         \Illuminate\Http\Request::HEADER_X_FORWARDED_HOST | 
                         \Illuminate\Http\Request::HEADER_X_FORWARDED_PORT | 
                         \Illuminate\Http\Request::HEADER_X_FORWARDED_PROTO;
    

内容的提问来源于stack exchange,提问作者Mubashar Abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:40:41