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

Docker环境Laravel项目laravel-websockets无法连接无ping-pong日志求助

配置错误点及修复方案


1. Nginx 路由规则未触发Websocket转发逻辑

你配置的map $http_upgrade $type规则未被调用,所有请求默认走了PHP解析逻辑,没有转发到Websocket服务:

  • 修改location /块规则,根据请求类型转发到对应处理块:
location / {
    try_files $uri @$type;
}
  • 新增统计页面的转发规则,统计页面为HTTP请求,不走WS协议:
location /laravel-websockets {
    proxy_pass http://php-fpm:6001;
    proxy_set_header Host $host;
}

2. Websocket服务监听地址错误

默认php artisan websocket:serve只会监听容器内部的127.0.0.1:6001,同网络下的Nginx容器通过php-fpm:6001访问时无法建立连接:

  • 启动命令修改为监听所有网卡:
    php artisan websocket:serve --host=0.0.0.0 --port=6001
  • 同步修改broadcasting.php的host配置,确保Laravel内部推送事件时可以正常连接Websocket服务:
'options' => [
    'cluster' => env('PUSHER_APP_CLUSTER'),
    'scheme' => 'http',
    'host' => '0.0.0.0',
    'port' => 6001
],

3. 额外排查项

  • 进入php-fpm容器执行ps aux | grep websocket确认supervisor启动的Websocket进程正常运行,无崩溃退出
  • 执行docker exec nginx容器名 ping php-fpm确认Nginx和php-fpm容器处于同一个Docker网络,网络连通正常
  • 确认.env文件中BROADCAST_DRIVER设置为pusher,所有PUSHER_*前缀配置和websockets.php中保持一致

内容的提问来源于stack exchange,提问作者Mohamed Ali Nakouri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:45:00