在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 或 Python 项目是一个常见需求。以下是详细的步骤指南,适用于大多数 Linux 系统(以 Ubuntu/Debian 为例)。
🛠️ 准备工作
-
购买并登录轻量服务器
- 获取公网 IP 地址
- 使用 SSH 登录:
ssh root@your_server_ip
-
更新系统
sudo apt update && sudo apt upgrade -y
✅ 部署 Node.js 项目
1. 安装 Node.js 和 npm
推荐使用 NodeSource 源安装较新版本:
# 添加 NodeSource 仓库(以 Node.js 18 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# 安装 Node.js 和 npm
sudo apt install -y nodejs
# 验证安装
node -v
npm -v
2. 上传项目代码
方式一:使用 Git 克隆
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
方式二:本地打包上传(使用 scp)
# 本地终端执行
scp -r ./my-node-app root@your_server_ip:/root/my-node-app
3. 安装依赖
npm install
4. 启动项目(建议使用 PM2 进程管理)
安装 PM2:
sudo npm install -g pm2
启动项目:
pm2 start app.js --name "my-node-app"
设置开机自启:
pm2 startup
pm2 save
5. (可选)配置 Nginx 反向X_X
安装 Nginx:
sudo apt install -y nginx
配置站点(例如 /etc/nginx/sites-available/myapp):
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1: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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
✅ 部署 Python 项目(以 Flask/Django 为例)
1. 安装 Python 和 pip
sudo apt install -y python3 python3-pip python3-venv
验证:
python3 --version
pip3 --version
2. 上传项目代码
同 Node.js 方法(Git 或 scp)
3. 创建虚拟环境并安装依赖
cd your-python-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
4. 测试运行(确保能启动)
例如 Flask 项目:
export FLASK_APP=app.py
flask run --host=0.0.0.0 --port=5000
注意:生产环境不要用
flask run,应使用 Gunicorn。
5. 使用 Gunicorn 部署
安装 Gunicorn:
pip install gunicorn
启动(示例):
gunicorn -w 4 -b 127.0.0.1:8000 app:app
(假设入口文件是 app.py,Flask 实例名为 app)
6. 使用 PM2 管理 Python 进程(推荐)
PM2 也可以管理 Python 应用:
pm2 start "gunicorn -w 4 -b 127.0.0.1:8000 app:app" --name "my-flask-app"
pm2 save
pm2 startup
7. 配置 Nginx 反向X_X(同 Node.js)
修改 proxy_pass 指向 Gunicorn 端口(如 http://127.0.0.1:8000)
🔐 安全与优化建议
-
开放防火墙端口
- 轻量服务器控制台 → 防火墙 → 放行 HTTP(80)、HTTPS(443)、SSH(22)
-
使用域名 + HTTPS(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -
设置日志查看
pm2 logs my-app-name journalctl -u nginx -f -
定期备份数据和代码
🧩 小贴士
| 任务 | 推荐工具 |
|---|---|
| 进程管理 | PM2(Node.js & Python) |
| Web 服务器 | Nginx |
| 应用服务器(Python) | Gunicorn / uWSGI |
| 自动化部署 | shell 脚本 / GitHub Actions |
✅ 总结
| 步骤 | Node.js | Python |
|---|---|---|
| 安装语言环境 | apt install nodejs |
apt install python3 pip |
| 安装包管理器 | npm |
pip |
| 进程守护 | PM2 | PM2 + Gunicorn |
| 反向X_X | Nginx | Nginx |
| 上线命令 | pm2 start app.js |
gunicorn ... |
如果你提供具体的项目类型(如 Express、Flask、Django、FastAPI),我可以给出更精确的部署脚本和配置。欢迎继续提问!
秒懂云