如何在CyberPanel中部署Node.js应用并实现80端口浏览器访问?
解决CyberPanel部署Node.js应用到80端口访问的问题
我来帮你搞定这个问题——要让你的Node.js应用通过80端口直接访问,核心是调整CyberPanel的配置并确保应用本身的监听设置正确,以下是两种可行的方案,你可以根据情况选择:
方案一:修正现有AppServer配置
你已经在vHost里配置了appserver,但可能有几个细节需要调整:
确认路径和监听地址
- 先检查
location的绝对路径是否准确,比如应该是类似/home/your-domain/public_html/dist这样的真实路径,替换掉你配置里的/FOLDER/FOLDER/PROJECT_FOLDER/dist - 打开你的
dist/index.js,确保应用监听的是0.0.0.0而不是localhost,代码应该是:
这样CyberPanel的appserver才能正确转发外部请求到你的应用。app.listen(3000, '0.0.0.0', () => { console.log('App running on port 3000'); });
- 先检查
重启Web服务器
登录CyberPanel后,进入Services菜单,找到OpenLiteSpeed/LiteSpeed服务,点击重启,让新的vHost配置生效。测试访问
直接用你的域名或者服务器IP访问80端口,应该就能看到你的应用了。
方案二:使用反向代理(更通用的方式)
如果AppServer配置方式遇到问题,反向代理是更稳妥的选择,步骤如下:
安装PM2管理Node应用
首先确保应用能在后台持续运行,用PM2是最佳实践:- 安装PM2:
npm install -g pm2 - 进入你的应用dist目录:
cd /FOLDER/FOLDER/PROJECT_FOLDER/dist - 启动应用:
pm2 start index.js --name my-node-app - 设置开机自启:执行
pm2 startup,然后按照终端提示的命令完成配置。
- 安装PM2:
添加反向代理规则
- 登录CyberPanel,进入对应网站的
Manage -> Rewrite Rules - 清空原有规则(如果有的话),添加以下内容:
RewriteEngine On RewriteRule ^(.*)$ http://localhost:3000/$1 [P,L] - 点击保存,然后回到
Services重启OpenLiteSpeed/LiteSpeed服务。
- 登录CyberPanel,进入对应网站的
验证访问
现在直接访问你的域名/服务器IP的80端口,请求会被转发到3000端口的Node应用,实现80端口访问。
额外注意事项
- 防火墙检查:确保服务器的80端口已经在防火墙(比如ufw、firewalld)中开放,避免外部请求被拦截。
- 端口冲突:确认3000端口没有被其他服务占用,可以用
netstat -tulpn | grep 3000检查。
内容的提问来源于stack exchange,提问作者Icler Anaya
相关产品推荐
相关产品推荐

