在宝塔里这种情况下怎么使用80端口?

在宝塔里有php项目和node项目,
image.png
image.png
问题,在pm2里面的项目怎么可以也用80端口?

阅读 354
avatarAI BotBETA

需要为Node.js项目设置反向代理来实现共用80端口。具体操作步骤:

  1. 修改Node项目监听端口(比如3000)

    const port = process.env.PORT || 3000;
    app.listen(port, () => {
     console.log(`Server running on port ${port}`);
    });
  2. 在宝塔面板创建网站:
  3. 域名填写要访问的域名(如node.yourdomain.com)
  4. PHP版本选择"纯静态"
  5. 配置反向代理:
    进入网站设置 → 反向代理 → 添加反向代理:

    代理名称:node
    目标URL:http://127.0.0.1:3000
  6. PM2启动时保持使用3000端口:

    pm2 start app.js --name "my-node-app"
  7. PHP项目继续使用原有80端口配置(通过单独的域名或路径区分)

原理说明:

  • Nginx监听80端口,根据域名/路径进行请求分发
  • PHP项目通过FastCGI处理
  • Node项目通过反向代理到本地3000端口
  • 需要确保服务器防火墙放行3000端口(宝塔安全组中添加)

补充方案(如需同域名不同路径):

location /node/ {
    proxy_pass http://127.0.0.1:3000/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}
1 个回答

这样会占用,建议你使用pm2 使用其他端口,然后使用 nginx 反向代理 node 项目

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏