在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 或 Python 项目,步骤如下。我们将分别介绍两种语言的部署流程。
🚀 一、准备工作
1. 购买并登录轻量服务器
- 登录云服务商控制台(如腾讯云、阿里云),购买轻量服务器。
- 选择操作系统:推荐 Ubuntu 20.04/22.04 或 CentOS 7+。
- 获取公网 IP 和 SSH 登录凭据(用户名密码或密钥对)。
2. 使用 SSH 登录服务器
ssh root@你的服务器IP
# 或
ssh ubuntu@你的服务器IP
🟢 二、部署 Node.js 项目
1. 安装 Node.js 和 npm
推荐使用 nvm 管理 Node 版本:
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 重新加载 shell 配置
source ~/.bashrc
# 安装 Node.js(例如 v18)
nvm install 18
nvm use 18
node -v # 检查版本
npm -v
2. 上传项目代码
方式一:使用 git clone
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install
方式二:本地打包上传(使用 scp)
# 本地执行
scp -r ./your-project root@your-server-ip:/root/
3. 启动项目(建议使用 PM2 管理进程)
npm install -g pm2
pm2 start app.js --name "my-node-app"
pm2 startup # 设置开机自启
pm2 save
4. 配置反向X_X(可选 Nginx)
安装 Nginx:
sudo apt update
sudo apt install nginx -y
配置 /etc/nginx/sites-available/default:
server {
listen 80;
server_name your-domain.com; # 或服务器IP
location / {
proxy_pass http://localhost:3000; # 假设 Node 服务运行在3000端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启 Nginx:
sudo systemctl restart nginx
5. 开放防火墙端口
- 在云控制台安全组中开放端口:
80(HTTP)、443(HTTPS)、3000(若直接访问 Node)
🔵 三、部署 Python 项目(以 Flask/Django 为例)
1. 安装 Python 和 pip
Ubuntu 示例:
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
python3 --version
pip3 --version
2. 创建虚拟环境并安装依赖
cd /path/to/your/project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3. 测试运行(开发模式)
python app.py # 或 python manage.py runserver 0.0.0.0:8000
⚠️ 注意:不要用
app.run(debug=True)上生产!
4. 使用 Gunicorn + Nginx 部署(推荐)
安装 Gunicorn
pip install gunicorn
启动 Gunicorn
gunicorn -w 4 -b 127.0.0.1:8000 app:app # Flask 示例
# 或 Django: gunicorn myproject.wsgi:application -b 127.0.0.1:8000
配置 Nginx 反向X_X
编辑 /etc/nginx/sites-available/default:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重启 Nginx:
sudo systemctl restart nginx
5. 使用 systemd 管理 Gunicorn 进程(可选)
创建服务文件 /etc/systemd/system/myflask.service:
[Unit]
Description=Gunicorn for Flask App
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/root/my-flask-app
ExecStart=/root/my-flask-app/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl start myflask
sudo systemctl enable myflask
✅ 四、通用优化建议
| 项目 | 建议 |
|---|---|
| 域名绑定 | 在 DNS 解析域名到服务器 IP |
| HTTPS | 使用 Let’s Encrypt + Certbot 免费申请 SSL 证书 |
| 日志监控 | 查看日志:pm2 logs / journalctl -u myflask |
| 自动部署 | 可结合 GitHub Actions / Git Hooks 实现自动拉取更新 |
🧩 补充:常见问题
- 端口未开放? → 检查云平台“安全组”规则是否放行对应端口(如 80、443、3000)
- 项目无法访问? → 检查防火墙、Nginx 配置、后端服务是否监听
0.0.0.0 - 内存不足? → 轻量服务器通常内存较小(1~2GB),避免运行过多服务
📌 总结
| 步骤 | Node.js | Python |
|---|---|---|
| 安装环境 | Node + npm + PM2 | Python + venv + Gunicorn |
| 运行服务 | pm2 start |
gunicorn |
| 反向X_X | Nginx | Nginx |
| 进程管理 | PM2 | systemd |
| 推荐结构 | 代码 → PM2 → Nginx → 网络 | 代码 → Gunicorn → Nginx → 网络 |
如果你提供具体的项目类型(如 Express、Flask、FastAPI、Django),我可以给出更详细的部署脚本和配置示例。欢迎继续提问!
CLOUD云枢