部署在cPanel上的Node.js服务端与客户端无法连接问题
cPanel部署Node.js WebSocket后的客户端连接地址方案
核心连接逻辑
部署到个人域名后,客户端无需再使用本地IP和端口,直接基于你的域名生成WebSocket连接地址:- 若应用绑定主域名根路径:
wss://你的域名.com - 若绑定子域名(比如
app.你的域名.com):wss://app.你的域名.com - 若绑定主域名的子路径(比如
你的域名.com/chat-app):wss://你的域名.com/chat-app
- 若应用绑定主域名根路径:
必须注意的细节
- cPanel会自动做反向代理,绝对不要加本地的8080端口,它会把域名的HTTPS请求转发到Node.js应用的内部端口
- 服务端代码要调整两处:监听
0.0.0.0而非本地IP,通过环境变量获取端口(cPanel会通过PORT变量传递分配的端口),示例代码:const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: process.env.PORT || 8080, host: '0.0.0.0' }); - 确保域名配置了有效SSL证书(cPanel默认会自动配置Let's Encrypt证书),
wss协议依赖HTTPS环境,无证书会导致连接失败
快速排查方法
直接查看cPanel的Node.js应用管理器里的「Application URL」字段,把开头的https://替换成wss://就是正确的连接地址。如果仍无法连接,打开浏览器控制台查看错误信息——比如连接拒绝大概率是地址错误,SSL相关错误则是证书问题
内容的提问来源于stack exchange,提问作者Asa Draper
相关产品推荐
相关产品推荐

