如何将NodeJS+Express+Socket.io开发的应用部署到Linux服务器并访问
NodeJS应用部署到Linux服务器操作流程
第一步:补全服务监听配置
你贴的server.js代码里缺少端口监听的逻辑,先在代码末尾添加以下内容,示例用3000端口,可自行修改为你想用的端口:
// 末尾新增 const PORT = process.env.PORT || 3000; server.listen(PORT, () => { console.log(`服务已启动,运行在端口${PORT}`); });
第二步:临时启动验证连通性
- 登录服务器后cd到代码存放的目录,执行
node server.js启动服务 - 先在服务器本地验证服务是否正常:执行
curl http://localhost:3000,如果能返回页面代码说明服务启动成功 - 本地浏览器访问
http://服务器公网IP:3000,如果无法访问优先检查两个配置:- 服务器服务商的安全组规则是否开放了3000端口的入站访问权限
- Linux服务器内部防火墙(firewalld/ufw)是否放通了3000端口
第三步:配置进程持久化运行
直接用node server.js启动的服务会在你断开SSH连接后停止,推荐用PM2管理Node进程:
- 全局安装PM2:
npm install -g pm2 - 启动应用:
pm2 start server.js --name my-webapp(my-webapp可替换为你自定义的应用名) - 常用管理命令:
- 查看运行状态:
pm2 list - 查看应用日志:
pm2 logs my-webapp - 重启应用:
pm2 restart my-webapp - 停止应用:
pm2 stop my-webapp
- 查看运行状态:
- 配置开机自启:执行
pm2 startup,按照终端输出的提示复制命令执行后,再执行pm2 save保存当前进程列表,服务器重启后应用会自动启动
第四步:可选进阶配置(推荐生产环境使用)
可以安装Nginx作为反向代理,实现不用带端口访问、绑定域名、配置HTTPS、静态资源加速等能力,配置时需要额外添加websocket支持,保证socket.io和peerjs的实时通信功能正常。
入门学习资源推荐
可以先从以下方向的官方文档入手学习:
- Linux基础操作、防火墙配置相关入门教程
- NodeJS生产环境部署官方指引
- PM2官方使用文档
- Nginx基础配置教程
内容的提问来源于stack exchange,提问作者EPP
相关产品推荐
相关产品推荐

