Linux部署nodejs服务
最近有一个是nodejs的项目需要部署到服务器,在部署的时候想通过supervisor管理服务,主要是其他服务也是用supervisor管理,后面发现通过supervisor会有环境的问题,就算是添加了环境变量也没用,node项目需要用到ffmpeg,直接运行项目没问题但是通过supervisor启动服务就是访问不了ffmpeg,试了systemd也不行,最后用了pm2来管理服务,发现pm2用起来也挺方便的。
要在 Linux 上部署 Node.js 服务,可以按照以下步骤操作:
1. 安装 Node.js 和 npm
首先,确保你的 Linux 系统已经安装了 Node.js 和 npm(Node.js 的包管理工具)。你可以通过以下步骤来安装它们:
Ubuntu/Debian 系统:
# 更新系统 sudo apt update # 安装 Node.js 和 npm sudo apt install nodejs npm
或者,使用 NodeSource 提供的安装脚本来安装最新版本的 Node.js:
# 下载 NodeSource 的安装脚本 curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - # 安装 Node.js 和 npm sudo apt install -y nodejs
安装完成后,可以验证版本:
node -v npm -v
2. 创建 Node.js 项目
创建一个 Node.js 项目并编写服务代码。例如,假设你的项目路径是 /home/user/myapp
。
# 创建项目目录 mkdir /home/user/myapp cd /home/user/myapp # 初始化 Node.js 项目 npm init -y # 安装所需依赖(例如,Express.js) npm install express
创建一个简单的 app.js
文件,作为 Node.js 服务的入口:
// /home/user/myapp/app.js const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello, world!'); }); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });
3. 测试 Node.js 服务
在本地启动你的 Node.js 服务,确保它正常运行。
node app.js
打开浏览器,访问 http://localhost:3000
,你应该看到 "Hello, world!" 的页面。
4. 使用 pm2
管理 Node.js 服务
为了让 Node.js 服务在后台持续运行并且可以自动重启,你可以使用 pm2
来管理服务。pm2
是一个非常流行的进程管理工具,适合生产环境。
安装 pm2
sudo npm install -g pm2
使用 pm2
启动应用
pm2 start app.js
查看服务状态
pm2 status
设置 pm2 在服务器重启时自动启动
pm2 startup
此命令会输出一行命令,复制并粘贴到终端中运行,设置 pm2
在系统启动时自动启动你的 Node.js 服务。
保存 pm2
配置
pm2 save
5. 配置 Nginx 作为反向代理(可选)
为了更好地处理生产环境中的请求,你可以使用 Nginx 作为反向代理,将请求转发到 Node.js 服务。
安装 Nginx
sudo apt install nginx
配置 Nginx 反向代理
编辑 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/myapp
添加以下内容:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
启用配置并重新加载 Nginx:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置是否正确 sudo systemctl restart nginx
总结:
- 安装 Node.js 和 npm。
- 创建一个 Node.js 项目并编写服务代码。
- 使用
pm2
来管理 Node.js 服务。 - 配置 Nginx 作为反向代理以处理生产环境中的流量。
注意:该内容由由AIGC提供。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!