部署疑问:Express与React构建文件需同存GoDaddy cPanel公共文件夹?VPS用Putty运行Node.js是否正确?
关于GoDaddy VPS + cPanel部署Express+React的问题解答
1. Express应用与React构建文件的存放位置
- 如果你的Express后端同时负责托管React前端静态资源(前后端同服务部署),那React的
build目录下所有文件,需要放到Express项目指定的静态文件夹(通常是public),再在Express中添加静态托管代码:app.use(express.static(path.join(__dirname, 'public'))); - 如果是前后端完全分离(前端单独通过cPanel静态托管,后端做独立API服务),则不需要放在同一文件夹:React构建文件上传到cPanel的
public_html目录(或子目录)作为静态站点,Express后端部署在VPS其他目录,通过端口提供API服务即可。
2. 是否应该在Putty中直接运行Node.js?
绝对不要直接在Putty里执行node app.js启动服务——关闭Putty或断开SSH连接后,Node进程会立刻终止。正确做法是用进程管理器后台托管Node进程:
- 安装PM2(常用Node进程管理器):
npm install pm2 -g - 启动Express服务:
pm2 start app.js - 查看进程状态:
pm2 status - 设置开机自启:
pm2 startup
3. 这种VPS部署方式是否正确?
这个部署思路是可行的,但要补全关键步骤让服务更稳定:
- 用Nginx做反向代理:把域名的80/443端口请求转发到Express服务的端口(比如3000),同时配置SSL证书实现HTTPS。
- 配置防火墙:开放用到的端口(比如80、443、3000),避免外部无法访问服务。
- 可选:用cPanel自带的Node.js管理器部署Express,无需手动在SSH操作,更贴合cPanel使用流程。
内容的提问来源于stack exchange,提问作者dialac
相关产品推荐
相关产品推荐

