Laravel 5.5环境下可信代理配置方法及发布异常排查
异常产生原因
- 核心前置依赖未安装
全局检索Fideloper无任何匹配结果,直接说明vendor目录下不存在fideloper/proxy包的源码。你执行的发布命令对应的服务提供者未被Laravel服务容器加载,没有实际可发布的资源,Laravel不会对不存在的provider抛出报错,仍会输出“Publishing complete”,因此不会生成任何配置文件。 - 参考指引默认环境已完成前置依赖安装,未覆盖初始项目的依赖安装步骤,和你当前的项目状态不匹配。
Laravel 5.5 环境下可信代理正确配置流程
- 安装适配版本的依赖
执行命令安装兼容Laravel 5.5的fideloper/proxy版本,不要直接安装最新版(最新版已不兼容5.5):composer require fideloper/proxy:^4.0 - 注册服务提供者
Laravel 5.5支持包自动发现,正常安装完成后会自动注册服务提供者;如果自动发现未生效,手动打开config/app.php,在providers数组末尾添加:Fideloper\Proxy\TrustedProxyServiceProvider::class - 发布配置文件
执行以下命令生成配置文件:php artisan vendor:publish --provider="Fideloper\Proxy\TrustedProxyServiceProvider"
执行完成后,config/trustedproxy.php会正常出现在项目的配置目录下。如果发布后仍找不到文件,先执行php artisan config:clear清除配置缓存后重试即可。 - 按需调整配置参数
打开生成的配置文件,根据实际的代理部署场景调整proxies参数:- 仅信任内部负载均衡时,填写对应的代理IP列表
- 部署在云服务商负载均衡、CDN后时,填写服务商提供的信任代理CIDR段
安全提示:不要全局设置
proxies => '*'信任所有请求来源,会存在伪造请求IP的安全风险。
内容的提问来源于stack exchange,提问作者neubert
相关产品推荐
相关产品推荐

