ubuntu nodejs项目部署步骤
导读:Ubuntu Node.js 项目部署步骤 一 准备与安装 更新系统并安装基础工具: sudo apt update && sudo apt upgrade -y sudo apt install -y git curl...
Ubuntu Node.js 项目部署步骤
一 准备与安装
- 更新系统并安装基础工具:
- sudo apt update & & sudo apt upgrade -y
- sudo apt install -y git curl
- 安装 Node.js 与 npm(两种常用方式,二选一):
- 使用 NodeSource 指定版本(示例为 18.x,可按需替换版本号):
- curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
- sudo apt-get install -y nodejs
- 或使用 NVM(便于多版本管理):
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
- source ~/.bashrc
- nvm install 18
- nvm use 18
- 使用 NodeSource 指定版本(示例为 18.x,可按需替换版本号):
- 验证安装:
- node -v
- npm -v
二 部署代码与安装依赖
- 获取代码(二选一):
- Git:git clone https://github.com/your-username/your-repo.git & & cd your-repo
- 本地上传:scp -r your-project user@server:/var/www/your-project
- 安装依赖:
- npm ci --only=production(优先,基于 package-lock.json 可复现安装)
- 或 npm install
- 配置环境变量(示例):
- 系统级:echo ‘NODE_ENV=production’ | sudo tee -a /etc/environment
- 应用级:在 ~/.bashrc 或项目根目录新建 .env 并使用 dotenv 加载
- 构建步骤(如适用):npm run build
三 使用 PM2 守护进程
- 安装与启动:
- sudo npm install -g pm2
- 启动方式一(直接启动文件):pm2 start app.js --name “my-app”
- 启动方式二(按 package.json 脚本):pm2 start npm --name “my-app” – run start
- 常用管理:
- pm2 status
- pm2 logs my-app
- pm2 restart my-app / pm2 stop my-app
- 开机自启动:
- pm2 startup
- 按提示执行输出的命令,然后 pm2 save
四 配置 Nginx 反向代理与 HTTPS
- 安装 Nginx:sudo apt install -y nginx
- 配置站点(示例:监听 80,转发到 3000):
- 新建配置:sudo nano /etc/nginx/sites-available/your-domain
- 示例内容:
- server {
- listen 80;
- server_name your-domain.com;
- location / {
- proxy_pass http://127.0.0.1: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;
- }
- }
- server {
- 启用站点:sudo ln -s /etc/nginx/sites-available/your-domain /etc/nginx/sites-enabled/
- 校验与重载:sudo nginx -t & & sudo systemctl reload nginx
- 申请并配置 Let’s Encrypt 免费证书(Certbot):
- sudo apt install -y certbot python3-certbot-nginx
- sudo certbot --nginx -d your-domain.com(按交互完成证书申请与 Nginx 配置)
- 防火墙放行:sudo ufw allow ‘Nginx Full’
五 常见问题与进阶建议
- 端口与监听:确保应用监听 0.0.0.0(而非仅 127.0.0.1),端口与 Nginx 的 proxy_pass 一致(如 3000)。
- 权限与安全:
- 避免使用 root 运行应用,建议创建专用用户并配置目录权限。
- 将 .env、.npmrc 等敏感文件加入 .gitignore,服务器上单独管理。
- 日志与监控:
- PM2 日志:pm2 logs;或结合 logrotate 做日志轮转。
- 进程守护:如需不用 PM2,可用 systemd 管理 Node 进程(创建 /etc/systemd/system/node-app.service,配置 ExecStart、Restart、WorkingDirectory、Environment 等,然后 systemctl enable --now node-app)。
- 零停机部署:
- 结合 PM2 的集群模式与优雅重启:pm2 start app.js -i max --name “my-app”;发布新版本时 pm2 reload my-app。
- 静态资源与缓存:
- 在 Nginx 中为静态资源设置 Cache-Control,提升性能。
- 健康检查与回滚:
- 增加 /health 接口,部署脚本先健康检查再切换流量,保留上一版本以便快速回滚。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu nodejs项目部署步骤
本文地址: https://pptw.com/jishu/759413.html
