Laravel Reverb WebSocket连接失败问题求助
Laravel Reverb WebSocket连接失败排查与解决
已完成Reverb安装并配置Nginx反向代理,但仍提示WebSocket连接失败,可按以下步骤排查解决:
1. 确认Reverb服务状态
- 登录服务器,手动启动Reverb服务:
php artisan reverb:start,观察是否有启动报错。 - 检查8080端口是否被监听:执行
ss -tulpn | grep 8080,确认Reverb进程在该端口正常运行。
2. 优化Nginx代理配置
当前配置缺少长连接超时设置,且proxy_pass地址建议调整,修改后的配置如下:
location /app { proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header SERVER_PORT $server_port; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; # 添加WebSocket长连接超时配置 proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d; proxy_pass http://127.0.0.1:8080; # 替换为本地回环地址,比0.0.0.0更可靠 }
- 验证Nginx配置语法:
nginx -t,无报错后重启Nginx:systemctl restart nginx
3. 核对Reverb配置文件
- 打开
config/reverb.php,确认:host设置为服务器公网IP或域名port为8080scheme:HTTPS环境设为wss,HTTP环境设为ws
- 前端连接地址需与上述配置匹配,例如HTTPS环境下使用
wss://你的域名/app
4. 检查服务器防火墙与安全组
- 确保服务器防火墙放行8080端口(Reverb)及80/443端口(Nginx):
ufw allow 8080/tcp ufw allow 80/tcp ufw allow 443/tcp ufw reload - 云服务器需在服务商控制台的安全组中添加对应端口的入站规则
5. 排查SSL与浏览器控制台错误
- HTTPS环境下,确保Nginx配置了有效SSL证书,否则浏览器会拦截
wss连接 - 打开浏览器开发者工具(F12),查看Console和Network面板的具体错误信息,定位是否为跨域、证书或协议不匹配问题
内容的提问来源于stack exchange,提问作者Darshan Belani
相关产品推荐
相关产品推荐

