在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器、AWS Lightsail 等)上部署 Node.js 或 Python 项目,可以按照以下通用步骤进行。下面分别介绍两种语言的部署流程。
✅ 一、准备工作
1. 购买并登录轻量服务器
- 登录云服务商控制台,购买一台轻量服务器(推荐 Ubuntu 20.04/22.04 LTS)。
- 获取公网 IP 地址和 SSH 登录凭证(用户名通常是
root或ubuntu)。
2. 连接到服务器
ssh root@你的服务器IP
3. 更新系统
sudo apt update && sudo apt upgrade -y
🟦 二、部署 Node.js 项目
1. 安装 Node.js 和 npm
使用 NodeSource 源安装较新版本:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
验证安装:
node --version
npm --version
2. 上传项目代码
方式有多种:
方法 A:使用 Git 克隆
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install
方法 B:本地打包上传(scp)
# 本地执行
scp -r ./your-project root@服务器IP:/root/
然后在服务器解压并安装依赖。
3. 启动项目
npm start
# 或
node app.js
但建议使用进程管理工具。
4. 使用 PM2 管理进程(推荐)
npm install -g pm2
pm2 start app.js --name "my-node-app"
pm2 startup
pm2 save
设置开机自启。
5. 配置反向X_X(Nginx)
安装 Nginx:
sudo apt install nginx -y
配置站点(编辑 /etc/nginx/sites-available/default):
server {
listen 80;
server_name your-domain.com; # 或服务器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;
}
}
重启 Nginx:
sudo systemctl restart nginx
6. 开放防火墙端口
确保云平台安全组开放了 80(HTTP) 和 443(HTTPS) 端口。
🟨 三、部署 Python 项目(以 Flask/Django 为例)
1. 安装 Python 环境
Ubuntu 通常自带 Python3:
python3 --version
pip3 --version
安装 pip(如果没有):
sudo apt install python3-pip python3-venv -y
2. 创建虚拟环境并安装依赖
cd your-python-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3. 测试运行(开发模式)
例如 Flask:
export FLASK_APP=app.py
flask run --host=0.0.0.0 --port=5000
注意:生产环境不要用
flask run,应使用 Gunicorn + Nginx。
4. 使用 Gunicorn 部署(生产级)
安装 Gunicorn:
pip install gunicorn
启动服务:
gunicorn -w 4 -b 127.0.0.1:8000 app:app # 根据你的入口文件调整
5. 使用 Supervisor 管理进程(推荐)
安装 Supervisor:
sudo apt install supervisor -y
创建配置文件 /etc/supervisor/conf.d/my-flask-app.conf:
[program:my-flask-app]
command=/root/your-project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
directory=/root/your-project
user=root
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/my-flask-app.log
更新 Supervisor:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my-flask-app
6. Nginx 反向X_X(同 Node.js 类似)
配置 Nginx:
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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
重启 Nginx:
sudo systemctl restart nginx
🔐 四、安全与优化建议
-
域名绑定与 HTTPS
- 绑定域名到服务器 IP。
- 使用 Let's Encrypt 免费证书(Certbot)开启 HTTPS:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your-domain.com
-
关闭不必要的端口
- 仅开放 80、443、22(SSH)等必要端口。
- 使用云平台“安全组”规则限制访问。
-
定期备份
- 备份数据库、代码、配置文件。
-
日志监控
- 查看 Nginx、PM2、Supervisor 日志排查问题。
✅ 总结
| 步骤 | Node.js | Python (Flask/Django) |
|---|---|---|
| 安装运行环境 | Node.js + npm | Python + pip + venv |
| 进程管理 | PM2 | Supervisor |
| Web 服务器 | Nginx 反向X_X | Nginx + Gunicorn/uWSGI |
| 部署方式 | Git clone / scp | Git clone / scp |
| 生产建议 | 不用 node app.js 直接运行 |
不用 flask run 开发服务器 |
如果你提供具体项目类型(如 Express、FastAPI、Django),我可以给出更详细的部署脚本或配置示例。欢迎继续提问!
CLOUD云计算