在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器、DigitalOcean Droplet 等)上部署 Node.js 或 Python 项目,可以按照以下通用步骤进行。这里以 Ubuntu 系统为例,介绍基本流程。
? 准备工作
-
购买并登录轻量服务器
- 获取公网 IP 地址和 SSH 登录信息(用户名通常是
root或ubuntu) - 使用 SSH 连接:
ssh root@your_server_ip
- 获取公网 IP 地址和 SSH 登录信息(用户名通常是
-
更新系统包
sudo apt update && sudo apt upgrade -y
✅ 部署 Node.js 项目
1. 安装 Node.js 和 npm
推荐使用 NodeSource 提供的安装方式:
# 安装 Node.js 18.x
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
验证安装:
node --version
npm --version
2. 上传项目代码
- 方法一:使用 Git 克隆项目
git clone https://github.com/yourname/your-node-project.git cd your-node-project - 方法二:使用
scp本地上传scp -r ./local-project root@your_server_ip:/root/your-node-project
3. 安装依赖
npm install
4. 启动项目(建议使用 PM2 管理进程)
安装 PM2:
npm install -g pm2
启动项目:
pm2 start app.js --name "my-node-app"
设置开机自启:
pm2 startup
pm2 save
5. (可选)配置 Nginx 反向X_X
安装 Nginx:
sudo apt install nginx -y
编辑配置文件:
sudo nano /etc/nginx/sites-available/default
添加反向X_X配置:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:3000; # 假设你的 Node.js 服务运行在 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;
}
}
重启 Nginx:
sudo systemctl restart nginx
✅ 部署 Python 项目(以 Flask/Django 为例)
1. 安装 Python 环境
Ubuntu 通常自带 Python3,检查版本:
python3 --version
pip3 --version
安装 pip(若没有):
sudo apt install python3-pip python3-venv -y
2. 上传项目代码
同上,使用 git clone 或 scp。
3. 创建虚拟环境并安装依赖
cd your-python-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
4. 启动服务(推荐使用 Gunicorn + Nginx)
安装 Gunicorn:
pip install gunicorn
测试启动(例如 Flask 项目):
gunicorn -w 4 -b 127.0.0.1:8000 app:app
注意:
app:app表示文件名:Flask 实例名
5. 使用 systemd 管理服务(后台运行)
创建服务文件:
sudo nano /etc/systemd/system/my-flask-app.service
内容示例:
[Unit]
Description=Gunicorn instance to serve my-flask-app
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/your-python-project
Environment="PATH=/root/your-python-project/venv/bin"
ExecStart=/root/your-python-project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reexec
sudo systemctl start my-flask-app
sudo systemctl enable my-flask-app
6. 配置 Nginx 反向X_X(同上)
修改 Nginx 配置,指向 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;
}
重启 Nginx:
sudo systemctl restart nginx
? 安全建议
- 开放必要端口(如 80、443),关闭其他端口(通过防火墙或安全组)
- 使用 UFW 防火墙:
sudo ufw allow 'Nginx Full' sudo ufw enable - 为域名配置 HTTPS(使用 Let’s Encrypt + Certbot):
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com
? 总结对比
| 步骤 | Node.js | Python (Flask/Django) |
|---|---|---|
| 运行时 | Node.js + npm | Python + pip + virtualenv |
| 进程管理 | PM2 | Gunicorn + systemd |
| Web 服务器 | 直接运行或 Nginx 反向X_X | Nginx + Gunicorn 反向X_X |
| 推荐前端X_X | Nginx | Nginx |
| HTTPS | Certbot | Certbot |
如果你提供具体项目类型(如 Express、FastAPI、Django、Next.js 等),我可以给出更精确的部署脚本和配置。欢迎继续提问!
CDNK博客