首页主机资讯ubuntu nodejs项目部署步骤

ubuntu nodejs项目部署步骤

时间2025-11-28 20:48:03发布访客分类主机资讯浏览1114
导读: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
  • 验证安装:
    • 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;
        • }
      • }
    • 启用站点: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
ubuntu nodejs如何卸载 如何合理配置debian extract参数

游客 回复需填写必要信息