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

Laravel 11 Reverb生产环境触发事件报BroadcastException: Pusher Error

Laravel 11 Reverb部署Apache后触发事件报404错误的解决办法

问题描述

本地环境下Laravel 11 Reverb运行正常,但部署到Apache生产服务器后,触发任意事件时均抛出BroadcastException: Pusher Error (Not found)错误。

现有配置信息

环境变量配置

REVERB_APP_ID=401372 
REVERB_APP_KEY=vcgwou45dwfj3qek4ixsv 
REVERB_APP_SECRET=o1jvqub6yshtowosmgbz 
REVERB_HOST="sub.doamin.com" 
REVERB_PORT=443 
REVERB_SCHEME=https

# 本地Reverb服务监听地址(已注释)
#REVERB_SERVER_HOST="0.0.0.0" 
# 本地Reverb服务监听端口(已注释)
#REVERB_SERVER_PORT=8080

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}" 
VITE_REVERB_HOST="${REVERB_HOST}" 
VITE_REVERB_PORT="${REVERB_PORT}" 
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

Reverb启动日志(执行php artisan reverb:start --debug)

正在0.0.0.0:8080启动服务器(对应域名sub.domain.com)
连接已建立.....

触发事件代码

broadcast(new FriendRequestReceived($sender, $receiver));

事件类broadcastOn方法

public function broadcastOn(): array { 
   return [ new PrivateChannel("friend-request.{$this->receiver->id}"), ]; 
}

Apache 443虚拟主机配置

ProxyPass /app  ws://0.0.0.0:8080/app
ProxyPassReverse /app ws://0.0.0.0:8080/app

解决步骤

  1. 恢复内部通信配置
    Laravel后端广播事件时,需要直接与Reverb服务建立内部通信,依赖REVERB_SERVER_HOST和REVERB_SERVER_PORT配置。取消这两个变量的注释:
REVERB_SERVER_HOST="0.0.0.0" 
REVERB_SERVER_PORT=8080
  1. 修正Apache代理配置
    生产环境使用HTTPS,WebSocket代理需匹配协议,同时明确指向本地服务地址:
# 先确认已启用mod_proxy和mod_proxy_wstunnel模块
ProxyPass /app wss://127.0.0.1:8080/app
ProxyPassReverse /app wss://127.0.0.1:8080/app

若服务器未启用相关模块,以Ubuntu系统为例执行以下命令:

a2enmod proxy proxy_wstunnel
systemctl restart apache2
  1. 确保Reverb服务持续运行
    不要直接通过终端启动Reverb,使用后台进程方式保持服务在线:
nohup php artisan reverb:start > /dev/null 2>&1 &

也可配置supervisor等进程管理工具实现服务自动重启。

  1. 清理配置缓存
    部署后刷新配置缓存,确保新配置生效:
php artisan config:clear
php artisan cache:clear
  1. 检查防火墙设置
    确认服务器防火墙允许本地访问8080端口,避免Laravel后端无法连接Reverb服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:04:57