Laravel生产环境WebSocket的Host配置及端口留存问题
Laravel WebSocket生产环境配置说明
1. Host配置修改
生产环境下,host需要配置为你的公网域名test.something.domain,同时要调整加密和协议相关配置以适配HTTPS环境:
- 将
scheme改为https(匹配你的域名协议) - 将
encrypted设为true,确保传输数据加密
修改后的配置片段如下:
'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'encrypted' => true, 'host' => 'test.something.domain', 'port' => 6001, 'scheme' => 'https' ], ],
2. 6001端口的使用问题
生产服务器可以保留6001端口,但需注意以下几点:
- 必须在服务器防火墙/安全组中放行6001端口,否则前端无法建立WebSocket连接
- 若想避免直接暴露端口,更推荐用Nginx反向代理:将
wss://test.something.domain/ws这类请求转发到本地6001端口,利用HTTPS默认的443端口提供服务,更符合生产安全规范。示例Nginx配置片段:
location /ws { proxy_pass http://127.0.0.1:6001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }
- 提前检查6001端口是否被其他服务占用,可执行命令
netstat -tulpn | grep 6001排查
内容的提问来源于stack exchange,提问作者quad que
相关产品推荐
相关产品推荐

