在腾讯云轻量应用服务器上部署Node.js项目可以分为以下几个步骤,以下是详细指南:
1. 准备工作
- 购买服务器
在腾讯云控制台选择轻量应用服务器(推荐Linux系统,如Ubuntu 20.04/CentOS 7.6)。 - 登录服务器
通过SSH连接(默认用户为root):ssh root@你的服务器IP
2. 安装Node.js环境
方法一:使用NodeSource(推荐)
# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# CentOS
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs
方法二:使用NVM(灵活管理版本)
# 安装NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
# 安装Node.js
nvm install --lts
验证安装:
node -v # 检查Node.js版本
npm -v # 检查npm版本
3. 部署Node.js项目
上传项目代码
- 方式1:直接上传
使用scp命令从本地传输文件到服务器:scp -r /本地项目路径 root@服务器IP:/home/project - 方式2:Git克隆
确保服务器已安装Git:git clone https://github.com/你的项目.git cd 项目目录 npm install # 安装依赖
配置环境变量
- 创建
.env文件或在启动命令中传入变量:PORT=3000 DATABASE_URL=your_db_url
4. 启动应用
直接启动(测试用)
node app.js # 或 npm start
注意:此时应用会占用终端,关闭SSH后进程终止。
使用PM2持久化运行
npm install pm2 -g
pm2 start app.js --name "my-node-app"
pm2 save
pm2 startup # 设置开机自启
常用命令:
pm2 list # 查看进程状态
pm2 logs # 查看日志
pm2 restart my-node-app
5. 配置防火墙与安全组
-
腾讯云控制台配置
进入轻量服务器控制台 → 防火墙 → 添加规则:- 开放应用端口(如3000、80、443)。
- 开放SSH端口(默认22)。
-
Ubuntu/CentOS本地防火墙
# Ubuntu sudo ufw allow 3000 sudo ufw enable # CentOS sudo firewall-cmd --add-port=3000/tcp --permanent sudo firewall-cmd --reload
6. 域名与HTTPS(可选)
Nginx反向X_X
- 安装Nginx:
sudo apt install nginx # Ubuntu sudo yum install nginx # CentOS -
配置反向X_X:
sudo vim /etc/nginx/conf.d/nodeapp.conf内容示例:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } - 重启Nginx:
sudo systemctl restart nginx
申请SSL证书
- 使用腾讯云SSL证书服务或Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx # Ubuntu sudo certbot --nginx -d your-domain.com
7. 常见问题
- 端口冲突:确保应用监听的端口未被占用(
netstat -tulnp)。 - 依赖错误:删除
node_modules后重新npm install。 - 权限问题:避免使用
root运行Node.js,可用pm2或systemd管理。
总结
- 通过SSH上传或克隆项目代码。
- 使用PM2/Nginx实现持久化和反向X_X。
- 开放防火墙端口并配置域名HTTPS。
按此流程部署后,你的Node.js应用即可通过域名或IP访问。
云服务器