在云服务器上使用 Node.js 分为以下几个步骤:
一、连接云服务器
Linux/Mac 使用 SSH ssh username@服务器IP地址 Windows 可使用: - PowerShell (Windows 10+) - PuTTY - Xshell - 云服务商提供的网页控制台
二、安装 Node.js
Ubuntu/Debian:
更新包列表 sudo apt update 安装 Node.js(包含npm) sudo apt install nodejs npm 验证安装 node --version npm --version
CentOS/RHEL:
启用 EPEL 仓库 sudo yum install epel-release 安装 Node.js sudo yum install nodejs npm
方法2:使用 NodeSource 仓库(获取最新版本)
Ubuntu/Debian curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs CentOS/RHEL curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo yum install nodejs
方法3:使用 nvm(Node 版本管理器)
安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 重新加载终端或运行 source ~/.bashrc 安装指定版本的 Node.js nvm install 18 # 安装 Node.js 18.x nvm use 18 # 使用该版本
三、部署 Node.js 应用
方法1:使用 scp 命令 scp -r /本地/项目路径 username@服务器IP:/home/username/ 方法2:使用 git 克隆 git clone https://github.com/yourusername/yourproject.git cd yourproject
npm install # 生产环境可用 npm ci 或 npm install --production
直接启动(临时运行):
node app.js 或 npm start
使用 PM2 管理进程(推荐用于生产环境):
全局安装 PM2 npm install -g pm2 启动应用 pm2 start app.js --name "my-app" 常用命令 pm2 list # 查看所有应用 pm2 logs # 查看日志 pm2 restart my-app # 重启应用 pm2 stop my-app # 停止应用 设置开机自启 pm2 startup pm2 save
四、配置防火墙和安全组
- 登录云服务商控制台
- 找到安全组/防火墙配置
- 开放应用端口(如 3000、8080)
Ubuntu (ufw) sudo ufw allow 3000/tcp sudo ufw enable CentOS (firewalld) sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent sudo firewall-cmd --reload
五、使用 Nginx 作为反向代理(可选但推荐)
Ubuntu/Debian sudo apt install nginx CentOS/RHEL sudo yum install nginx
编辑配置文件
sudo nano /etc/nginx/sites-available/default
添加配置
server {
listen 80;
server_name 你的域名或IP;
location / {
proxy_pass http://localhost: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 nginx -t
重启 Nginx
sudo systemctl restart nginx六、常见问题解决
查看端口占用 sudo netstat -tlnp | grep :3000 或使用 lsof sudo lsof -i :3000 终止进程 kill -9 进程ID
使用非root用户运行 useradd nodeuser chown -R nodeuser:nodeuser /项目路径
PM2 日志 pm2 logs Nginx 错误日志 tail -f /var/log/nginx/error.log 系统日志 journalctl -u nginx -f
七、环境变量配置
创建环境文件 nano .env 内容示例 NODE_ENV=production PORT=3000 DATABASE_URL=your_db_url 使用 dotenv 包(在 package.json 中添加) npm install dotenv
八、自动化部署脚本示例
#!/bin/bash deploy.sh 拉取最新代码 git pull origin main 安装依赖 npm install --production 重启应用 pm2 restart all 显示部署状态 pm2 status
九、监控和维护
查看服务器资源使用 htop # 或 top 查看磁盘空间 df -h 查看内存使用 free -h 设置定时备份(crontab) crontab -e 添加:0 2 * * * /path/to/backup-script.sh
推荐的工具和资源
1、进程管理:PM2(首选)或 Forever
2、反向代理:Nginx 或 Caddy
3、监控工具:PM2 内置监控或 New Relic
4、日志管理:PM2-logrotate
5、自动化部署:GitHub Actions、Jenkins
注意事项
1、安全:定期更新 Node.js 和依赖包,使用非 root 用户运行
2、性能:使用集群模式(PM2 cluster)、启用 Gzip 压缩
3、备份:定期备份代码和数据库
4、监控:设置应用监控和告警
按照这个流程,你就可以在云服务器上成功部署和运行 Node.js 应用了。
文章摘自:https://idc.huochengrm.cn/fwq/24880.html
评论