在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器、AWS Lightsail 等)上部署 Node.js 或 Python 项目是一个常见需求。以下是详细的步骤指南,适用于 Ubuntu/Debian 系统。
🚀 一、准备工作
1. 购买并登录轻量服务器
- 登录云服务商控制台,购买轻量服务器(推荐选择 Ubuntu 20.04 / 22.04 LTS)
- 获取公网 IP、用户名(通常是
root或ubuntu)、密码或 SSH 密钥 - 使用 SSH 登录:
ssh root@你的公网IP # 或使用密钥 ssh -i ~/.ssh/your-key.pem root@你的公网IP
🌐 二、通用基础设置
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装常用工具
sudo apt install -y curl wget git nginx vim
⚙️ 三、部署 Node.js 项目
1. 安装 Node.js(推荐使用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
node -v # 验证安装
2. 上传项目代码
方式一:克隆 GitHub 项目
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install
方式二:本地上传(使用 scp)
scp -r ./local-project root@your-ip:/root/myapp
3. 启动项目(建议使用 PM2 管理进程)
安装 PM2:
npm install -g pm2
启动项目:
pm2 start app.js --name "my-node-app"
pm2 startup # 开机自启
pm2 save # 保存当前进程列表
常用命令:
pm2 logs,pm2 restart my-node-app,pm2 list
🐍 四、部署 Python 项目(以 Flask/Django 为例)
1. 安装 Python 环境
Ubuntu 通常自带 Python 3:
python3 --version
pip3 --version
安装 pip 和 venv:
sudo apt install -y python3-pip python3-venv
2. 创建虚拟环境并运行项目
git clone https://github.com/yourname/your-flask-app.git
cd your-flask-app
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
3. 使用 Gunicorn 启动(生产环境)
安装 Gunicorn:
pip install gunicorn
启动服务(例如 Flask 的 app.py):
gunicorn -w 4 -b 127.0.0.1:8000 app:app
4. 使用进程管理器(推荐 Supervisor)
安装 Supervisor:
sudo apt install -y supervisor
创建配置文件 /etc/supervisor/conf.d/myflask.conf:
[program:myflask]
command=/root/your-flask-app/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
directory=/root/your-flask-app
user=root
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/myflask.log
重载 Supervisor:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status
🌍 五、配置 Nginx 反向X_X(让项目通过 80 端口访问)
1. 编辑 Nginx 配置
sudo vim /etc/nginx/sites-available/default
Node.js 示例配置:
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;
proxy_cache_bypass $http_upgrade;
}
}
Python (Gunicorn) 示例:
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;
}
2. 测试并重启 Nginx
sudo nginx -t # 检查语法
sudo systemctl reload nginx
🔐 六、安全与优化建议
-
防火墙设置(UFW)
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable -
绑定域名 + HTTPS(可选)
- 绑定域名到公网 IP
- 使用 Certbot 部署免费 SSL 证书:
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com
-
定期备份代码和数据库
✅ 七、验证部署成功
在浏览器中访问:
http://你的公网IP
应能看到你的网站正常运行。
📌 总结对比
| 项目类型 | 运行方式 | 进程管理 | Web 服务器 |
|---|---|---|---|
| Node.js | node app.js 或 PM2 |
PM2 | Nginx 反向X_X |
| Python | Gunicorn + Supervisor | Supervisor | Nginx 反向X_X |
如果你提供具体的项目类型(如 Express、Flask、Django、FastAPI 等),我可以给出更精确的部署脚本和配置示例。欢迎继续提问!
云服务器