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

Laravel Livewire 3 负载均衡环境下文件上传失败问题

Livewire生产环境上传文件401异常解决方案

问题根源

生产环境通过HAProxy负载均衡时,/livewire/upload-file端点返回401 HttpException,异常触发自FileUploadController.php第21行的签名验证逻辑:

abort_unless(request()->hasValidSignature(), 401);

本地环境无负载均衡,请求签名验证可正常通过;但HAProxy转发请求时,可能修改了Host头、请求URL或未正确传递转发协议信息,导致签名验证失败。

解决步骤

  • 配置HAProxy传递原始请求信息
    在HAProxy配置文件中添加以下规则,确保后端服务器能获取到原始的请求Host和协议:

    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Host:\ %[req.hdr(Host)]
    

    这会保留客户端请求的原始Host头,并传递正确的请求协议(HTTP/HTTPS)。

  • 让Laravel信任HAProxy代理
    修改Laravel项目的config/trustedproxy.php文件,将HAProxy的IP地址加入信任代理列表:

    'proxies' => [
        '10.0.0.5', // 替换为实际的HAProxy服务器IP
    ],
    

    若为安全的内部网络环境,也可设置为信任所有代理:

    'proxies' => '*',
    

    此配置让Laravel认可HAProxy传递的X-Forwarded-*头,保证签名生成与验证使用正确的请求参数。

  • 检查HAProxy的URL重写规则
    确认HAProxy未对/livewire/upload-file相关请求的URL进行截断或重写,确保请求中的签名参数完整传递到后端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:05