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

ISPmanager中Node.js WebSocket服务端口配置故障求助

在ISPmanager中运行WebSocket服务的解决方法

一、先修正代码中的错误

你的代码存在两处关键问题:

  1. process.env.SOCKET是ISPmanager提供的Unix域套接字路径,并非端口号,创建WebSocket Server时不能用port参数,需改用path;如果要指定端口,直接填写大于1024的非特权端口号(如8080),同时确保端口未被占用。
  2. connection事件的回调参数里,没有client这个参数,发送消息需使用第一个参数ws。

修正后的代码示例:

const { Server } = require('ws');
const socketPath = process.env.SOCKET;

// 推荐:使用ISPmanager提供的Unix套接字
const server = new Server({ path: socketPath });

// 如果要使用端口,替换成下面的代码:
// const server = new Server({ port: 8080 });

server.on('connection', function connection(ws, request) {
      console.log('客户端已连接');
      ws.send('连接成功');
});

二、ISPmanager中的配置要点

  • 安装依赖:在ISPmanager的Node.js应用管理界面,找到你的项目,点击「安装依赖」,确保ws包被正确安装;也可手动进入项目目录执行npm install ws。
  • 环境变量与启动设置:
    • 若使用Unix套接字,确认ISPmanager已为应用自动配置SOCKET环境变量,启动文件设为server.js,工作目录指向项目根目录。
    • 若使用端口,需在ISPmanager的防火墙设置中开放该端口,同时确认端口未被其他服务占用。
  • 启动与日志检查:在控制面板中启动Node.js应用,查看日志确认无启动报错(如权限不足、依赖缺失等)。

三、WebSocket连接测试

  • 用Unix套接字时,需通过Nginx反向代理转发请求,可在ISPmanager的域名配置中添加如下规则:
location /ws {
    proxy_pass http://unix:/path/to/your/socket;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

之后用ws://你的域名/ws发起连接。

  • 用端口时,直接使用ws://你的域名:端口发起连接。

原参考文档(ISPmanager6 Lite Node.js章节)翻译摘要:

  • ISPmanager支持通过控制面板可视化管理Node.js应用,可配置环境变量、指定启动文件、监控进程状态
  • 针对Unix套接字部署场景,应用需通过process.env.SOCKET获取系统分配的套接字路径,绑定到该路径而非端口
  • 项目依赖可通过控制面板一键安装,或在终端执行npm install手动安装
  • 应用启动后,可在控制面板查看实时日志、执行重启/停止操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 12:51:36