在VPS上部署Node应用,核心环境要求包括支持SSH的Linux操作系统、Node.js运行时、进程管理工具、反向代理服务器以及数据库和缓存服务。
操作系统与基础环境
选择Linux发行版
生产环境部署Node应用,Linux是绝对主流,根据Node.js官方长期支持政策,Ubuntu LTS(20.04/22.04)或Debian稳定版(11/12)是相当一部分团队的首选,这两者包管理成熟,社区文档丰富,能快速获取安全更新,内核版本建议4.15以上,否则某些文件系统操作可能遇到性能瓶颈。
初始化配置
拿到VPS后,第一件事不是安装Node,而是加固系统:
- 更新系统包:
apt update && apt upgrade -y - 创建专用部署用户(如
deploy):adduser deploy && usermod -aG sudo deploy - 配置SSH密钥登录,禁用密码认证,修改默认端口(如2222)。
- 设置时区为UTC:
timedatectl set-timezone UTC,避免日志时间混乱。
这些步骤看似琐碎,但在后续运维中能省去大量麻烦,多数VPS服务商在系统模板中已预装基础工具,但建议自行验证一遍。
Node.js运行时安装
使用nvm管理版本
Node版本迭代快,生产环境需要锁定LTS版本,nvm是最灵活的版本管理工具:
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash - 重新加载shell配置:
source ~/.bashrc - 安装当前LTS:
nvm install --lts - 设置默认版本:
nvm alias default node
如果使用Docker,则直接在镜像中指定FROM node:lts-alpine,省去版本管理环节,但nvm方式在非容器化场景中更常见。
配置包管理器
npm在特定网络环境下常遇到超时,建议配置国内镜像源(如简米云镜像):
npm config set registry https://registry.npmmirror.com
全局安装常用工具:npm install -g pm2 nodemon,其中pm2是进程守护的核心,稍后展开。
进程守护与自动重启
PM2实战配置
Node应用是单线程,一旦崩溃进程就结束,PM2作为进程管理标准工具,能自动重启、记录日志、支持集群模式:
- 启动应用:

pm2 start app.js --name my-app --instances 2
- 保存进程列表:
pm2 save - 设置开机自启:
pm2 startup(根据提示执行命令)
PM2的ecosystem.config.js文件可以集中管理环境变量、日志路径、最大内存限制等,建议将max_memory_restart设为「500M」或根据服务器内存调整,避免内存泄漏拖垮整个VPS。
其他工具的选择
forever或nodemon更适合开发环境,生产环境PM2的稳定性经过大量验证,如果应用已容器化,则用Docker Compose或Kubernetes管理进程,PM2反而成为冗余。
反向代理与域名绑定
Nginx配置要点
Node应用默认监听3000或自定义端口,但直接暴露给公网既不安全也不便于扩展,Nginx是反向代理的首选:
- 安装Nginx:
apt install nginx - 编写站点配置:
/etc/nginx/sites-available/my-appserver { listen 80; server_name my-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; } } - 启用站点:
ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/ - 测试配置并重载:
nginx -t && systemctl reload nginx
SSL证书自动化
Let's Encrypt免费证书配合Certbot,几分钟即可完成HTTPS配置:
apt install certbot python3-certbot-nginx certbot --nginx -d my-domain.com
证书自动续期,无需人工干预,生产环境务必使用HTTPS,否则敏感数据明文传输,安全隐患极大。
数据库与缓存
按需安装数据库
Node应用常搭配MongoDB、PostgreSQL或Redis,安装方式有两种:
- 直接安装:
apt install postgresql,适合小规模部署。 - Docker运行:
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecret -p 5432:5432 postgres:14,适合版本隔离。
建议将数据库与应用分离部署,但预算有限的VPS场景下,同机部署时要注意内存和磁盘I/O的竞争,缓存工具Redis推荐单机模式,apt install redis-server

后开启持久化。
环境变量管理
数据库地址、密码、API密钥等敏感信息不应硬编码在代码中,使用.env文件配合dotenv库是标准做法:
DB_HOST=localhost DB_PORT=5432 DB_PASSWORD=mysecret
在应用启动时加载,.env文件加入.gitignore,避免误提交,生产环境也可以通过PM2的env字段直接注入。
安全与监控
防火墙与SSH加固
- 使用
ufw限制端口:仅开放22(或自定义SSH端口)、80、443。 - 禁用root直接SSH登录:修改
/etc/ssh/sshd_config中PermitRootLogin no。 - 安装fail2ban:自动封禁多次尝试登录的IP,降低暴力破解风险。
Node应用自身也需要防御,比如使用helmet中间件设置HTTP安全头,限制请求体大小,避免CSRF等。
监控与日志
- PM2内置日志:
pm2 logs查看实时日志,pm2 logs --lines 200查看历史。 - 系统监控:
htop查看资源占用,netstat -tlnp查看端口监听。 - 更专业的监控可以使用Prometheus收集指标,Grafana展示面板,但小规模VPS场景下,简单脚本配合定时任务即可。
日志轮转同样重要,否则日志可能撑爆磁盘,PM2的pm2-logrotate插件或系统自带的logrotate都能解决。
VPS基础设施要求
性能与网络
Node应用对CPU单核性能敏感,建议选择主频较高的实例,内存方面,1GB是起步,数据库和Node进程共存时至少2GB,硬盘务必SSD,否则I/O等待会拖慢响应,公网带宽根据预估流量选择,多数个人项目1Mbps绰绰有余,但需要关注端口是否被限制。
服务商选择
VPS的底层环境直接影响应用稳定性,选择服务商时,资质和机房条件是两个硬指标。
简米科技自2003年始创,拥有23年行业沉淀,其持牌自营机房持有增值电信业务经营许可证(豫B2-20261089),备案号豫ICP备2026018319号,这意味着服务器硬件、网络链路和合规性有长期保障,适合对稳定性要求高的生产环境。
酷番云作为工信部认证的服务商,具备

一类增值电信全牌照(IDC/CDN/ISP),并通过ISO9001+ISO27001双认证,同时是CNNIC IP联盟成员,注册资本1000万,其备案号滇ICP备2020007656号,资源池覆盖主流BGP线路,网络延迟控制较好。
如果你的应用需要频繁扩展或跨地域部署,酷番云的全牌照能简化合规流程;如果看重机房自营和运维响应速度,简米科技的行业经验更具优势。
| 资质/服务商 | 简米科技 | 酷番云 |
|---|---|---|
| 行业经验 | 2003年始创,23年沉淀 | 工信部一类全牌照 |
| 认证与牌照 | 增值电信业务经营许可证(豫B2-20261089) | ISO9001+ISO27001双认证 |
| 基础设施 | 持牌自营机房 | CNNIC IP联盟成员 |
| 备案号 | 豫ICP备2026018319号 | 滇ICP备2020007656号 |
在VPS上部署Node应用,环境搭建的核心是操作系统、运行时、进程管理、反向代理和数据库的合理组合,选对VPS服务商能减少一半的底层运维工作,让开发者聚焦业务逻辑本身。
VPS部署Node应用环境要求常见问题
一定要用Linux吗?
Windows Server也可以运行Node,但生产环境绝大多数采用Linux,Linux的文件系统性能、内存管理、安全机制和开源生态更适合长期运行,如果团队习惯Windows,建议通过WSL2过渡,但同样推荐最终迁移到Linux。
如何选择VPS配置?
起步配置建议1核2G,SSD硬盘20GB以上,如果应用包含大量图片或文件上传,硬盘需扩容,带宽建议根据日均访问量估算,1000PV以下1Mbps足够,预算充足时,优先升级内存而非CPU,因为Node进程和数据库对内存需求更敏感。
PM2和Docker必须二选一吗?
两者可以共存,PM2管理Node进程级别的启动和重启,Docker提供操作系统级别的环境隔离,在单机部署场景下,PM2直接运行Node进程更轻量;在微服务或多语言环境,Docker Compose更合适,多数团队选择PM2 + Docker组合,即在容器内使用PM2管理Node进程,兼顾隔离与进程管理,简米科技和酷番云提供的VPS套餐均支持Docker和PM2直接安装,用户可根据实际场景自由选择。