首页 帮助中心 在Ubuntu服务器上部署Node.js微服务的步骤流程
在Ubuntu服务器上部署Node.js微服务的步骤流程
时间 : 2025-10-07 13:49:16
编辑 : 华纳云
阅读量 : 51

相比单体应用,微服务能将复杂系统拆分成多个独立的模块,既便于开发协作,又能提升部署和扩展的灵活性。而在实际生产环境中,很多开发者都会选Ubuntu 服务器来承载Node.js 微服务。Ubuntu的稳定性、广泛的社区支持,以及与 Node.js 的高度兼容,让它成为理想的运行环境。对于初次接触的开发者来说,如何从零开始在 Ubuntu 服务器上部署一个 Node.js 微服务,往往是一个系统性问题。

下面我会结合实践经验,从准备服务器、安装运行环境、部署代码、配置进程管理、反向代理、日志管理到自动化更新,逐步展开,确保读者能跟着操作完成一个可上线的部署流程。

在开始之前,你需要具备一台可用的 Ubuntu服务器(推荐 20.04 或 22.04 版本),并拥有root 权限或sudo 权限。如果是云服务器,还需要提前开放 22 端口(SSH 登录)以及 80/443 端口(HTTP/HTTPS 访问)。

第一步是 更新系统环境。新购置的服务器往往需要先更新软件源和安全补丁,保证后续安装顺利。执行以下命令:

sudo apt update && sudo apt upgrade -y

完成后,系统会将所有依赖更新到最新版本,避免因为缺少库而导致 Node.js 无法运行。

第二步是 安装 Node.js 和 npm。Ubuntu 官方仓库自带的 Node.js 版本通常偏旧,不建议直接使用。更推荐使用 NodeSource 或 nvm(Node Version Manager)来安装指定版本。以 NodeSource 为例:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

安装完成后,可以检查版本:

node -v
npm -v

确保输出的版本号符合你的项目要求。如果你需要在一台服务器上运行多个 Node.js 应用,建议安装 nvm,方便切换不同版本。

第三步是 准备项目代码。在本地开发完成后,可以通过 Git 将代码拉取到服务器。

sudo apt install git -y
git clone https://github.com/yourname/your-microservice.git
cd your-microservice

在项目目录下,使用 npm 或 yarn 安装依赖:

npm install --production

这里建议加上 --production 参数,避免安装开发依赖,减少体积。

第四步是 运行应用进行测试。假设入口文件是 app.js,可以先尝试直接运行:

node app.js

如果输出提示服务已启动,可以在浏览器访问 http://服务器IP:端口号 进行测试。此时 Node.js 应用是前台运行的,关闭 SSH 会话后就会停止,因此还需要配置进程管理工具。

第五步是 使用 PM2 管理进程。PM2 是最常见的 Node.js 进程管理工具,支持守护进程、自动重启、日志管理。安装 PM2:

sudo npm install -g pm2

使用 PM2 启动应用:

pm2 start app.js --name microservice

此时应用会在后台运行。可以用以下命令查看状态:

pm2 list

如果想要在服务器重启后自动启动应用,可以执行:

pm2 startup systemd
pm2 save

这样即使服务器重启,微服务也能随系统自动恢复运行。

第六步是 配置 Nginx 作为反向代理。Node.js 应用默认监听某个端口,比如 3000,但用户访问时习惯使用标准的 80 或 443 端口。Nginx 可以作为反向代理,将外部请求转发给 Node.js 服务。

安装 Nginx:

sudo apt install nginx -y

配置虚拟主机文件:

sudo nano /etc/nginx/sites-available/microservice

写入以下内容:

server {
    listen 80;
    server_name yourdomain.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;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/microservice /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

现在就可以通过域名直接访问 Node.js 微服务了。

第七步是 配置 HTTPS 证书。如果微服务需要对外提供服务,强烈建议启用 HTTPS。

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com

安装成功后,访问地址就会自动跳转到 HTTPS,更加安全。

第八步是 日志和监控。微服务架构中,日志管理尤为重要。PM2 自带日志功能,可以用以下命令查看:

pm2 logs microservice

如果要长期保存日志,可以设置 logrotate 或将日志输出到外部存储。对于监控,可以考虑结合 pm2 monit 或 Prometheus + Grafana 方案,实现更精细的运维管理。

第九步是 自动化部署。在团队协作中,频繁手动更新代码并不高效。可以借助 Git hooks 或 CI/CD 工具(如 GitLab CI、Jenkins、GitHub Actions)实现自动部署。例如,可以在服务器上配置一个脚本:

#!/bin/bash
cd /var/www/microservice
git pull
npm install --production
pm2 restart microservice

这样只要在本地提交并推送代码,就能在服务器上通过 git pull 拉取最新版本,并自动重启服务。

第十步是 性能优化。在生产环境中,可以通过以下措施优化 Node.js 微服务:

  • 启用 Cluster 模式,利用多核 CPU 提升并发能力:

    pm2 start app.js -i max --name microservice
  • 开启 gzip 压缩,减小传输体积:在 Nginx 配置里添加:

    gzip on;
    gzip_types text/plain application/javascript text/css application/json;
    
  • 使用 缓存(如 Redis)存储频繁访问的数据,降低数据库压力。

  • 设置 环境变量,将敏感配置与代码分离,例如数据库密码和 API Key。

在现代应用架构中,微服务已经成为越来越多企业的选择。经过这些步骤,一个完整的Node.js微服务就能在Ubuntu服务器上稳定运行,并具备可维护性和可扩展性。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持