如何在VPS上部署Node.js?
| 步骤 |
操作说明 |
使用工具 |
| 1 |
选择VPS提供商 |
DigitalOcean、AWS、Linode等 |
| 2 |
安装Node.js |
使用包管理器(如apt、yum)或版本管理器(如nvm) |
| 3 |
配置防火墙 |
开放所需端口(如80、443) |
| 4 |
部署应用 |
使用PM2或systemd管理进程 |
| 5 |
域名绑定 |
配置DNS和Nginx/Apache反向代理 |
详细操作流程
1. 选择VPS提供商
根据需求选择合适的VPS服务商,建议考虑以下因素:
- 价格:按小时或月计费
- 地理位置:选择靠近用户的区域
- 操作系统:推荐Ubuntu或CentOS
# 示例:DigitalOcean创建Droplet
doctl compute droplet create --size s-1vcpu-2gb --image ubuntu-20-04-node --region nyc3
2. 安装Node.js
使用nvm(Node Version Manager)可以方便地管理多个Node版本:
# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
安装Node.js LTS版本
nvm install --lts
nvm use --lts
3. 配置防火墙
使用UFW(Uncomplicated Firewall)开放必要端口:
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
4. 部署应用
使用PM2管理Node应用:
npm install -g pm2
pm2 start app.js --name "myapp"
pm2 save
pm2 startup
5. 域名绑定
配置Nginx反向代理:
server {
listen 80;
servername example.com;
location / {
proxypass http://localhost:3000;
proxyhttpversion 1.1;
proxysetheader Upgrade $httpupgrade;
proxyset_header Connection "upgrade";
}
}
常见问题解答
| 问题 |
原因 |
解决方案 |
| 连接超时 |
防火墙未开放端口 |
检查并开放对应端口 |
| 内存不足 |
应用内存泄漏 |
使用PM2监控或增加内存 |
| 权限错误 |
文件权限不足 |
使用chmod或chown调整 |
| 端口占用 |
其他进程占用 |
使用lsof查找并终止进程 |
| SSL证书错误 |
证书未正确配置 |
检查Let’s Encrypt或证书路径 |
发表评论