WHM VPS环境cPanel无Node.js选项时如何部署Node.js API
cPanel部署Node.js API操作指南(无Node.js Applications入口场景)
前置说明
- 你当前cPanel面板看不到Node.js Applications入口,核心原因是服务器层面未安装cPanel官方Node.js运行组件、或者站点账号未开放对应功能权限,PHP Manager仅支持PHP环境管理,无法直接用来运行Node.js服务,不要尝试在PHP Manager中强行适配Node.js环境,会引发端口冲突、进程异常问题。
- 以下操作默认你持有VPS的root管理权限,如果仅持有cPanel站点子账号无root权限,直接联系主机商帮你开启Node.js Selector功能即可,子账号层面无法调出隐藏的功能入口。
方案1:开启cPanel原生Node.js支持(优先选择,稳定性最高)
- 登录服务器级WHM管理面板,访问地址一般为
你的服务器IP:2087,使用root账号密码登录 - 在左侧菜单栏找到「Software」分类下的「EasyApache 4」,进入后点击当前运行环境配置旁的「Customize」按钮
- 切换到「Additional Packages」标签页,找到和你本地开发API匹配的Node.js大版本(可选nodejs16、nodejs18、nodejs20),勾选后点击页面底部的「Next」,等待组件自动编译安装完成
- 回到WHM左侧菜单,找到「Feature Manager」入口,选择当前站点账号绑定的功能集(默认一般为default),点击「Edit」
- 在功能列表中找到「Application Manager」「Node.js Selector」两个选项,勾选后保存配置
- 退出当前cPanel站点账号重新登录,「Software」板块就会显示Node.js Applications入口,后续按照页面引导选择API项目目录、指定启动文件(通常为
index.js/app.js/server.js)、配置环境变量、映射访问域名即可完成部署。
方案2:手动部署(无需开启cPanel原生组件)
如果不想安装cPanel官方Node.js组件,可以直接通过SSH部署+反向代理的方式运行服务:
- 通过SSH连接VPS服务器,安装和本地开发版本一致的Node.js运行时以及对应包管理器
- 将你的Node.js API代码上传到服务器非web公开目录,推荐路径为
/home/你的cPanel用户名/node-projects/api,不要把代码放在public_html目录下,避免源码直接对外泄露 - 进入项目目录执行
npm install --production安装生产环境依赖,执行node 你的启动文件名.js本地测试接口是否能正常响应,测试完成后终止测试进程 - 全局安装pm2进程守护工具:
npm install -g pm2,执行pm2 start 你的启动文件名.js --name node-api启动服务,依次执行pm2 save保存进程列表、pm2 startup生成开机自启命令,复制终端返回的自启命令执行,即可保证服务器重启后API服务自动运行 - 回到cPanel站点面板,在「Domains」板块为API服务绑定专属子域名(比如
api.你的主域名.com) - 找到cPanel内的web服务器配置入口(不同版本可能叫Apache Configuration、Nginx Manager),给刚才绑定的API子域名添加反向代理规则,代理目标地址填
http://127.0.0.1:你的API服务监听的端口,保存配置后重载web服务 - 在服务器防火墙、cPanel防火墙中放行API服务监听的本地端口,避免访问超时。
注意:不要让Node.js服务直接监听80、443端口,这两个端口默认被cPanel的web服务占用,强行占用会导致面板和所有站点无法访问,Node服务只需监听127.0.0.1下的高端口(比如3000、8080)即可,所有外部流量通过反向代理转发。
内容的提问来源于stack exchange,提问作者Arslan Habib
相关产品推荐
相关产品推荐

