在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器、AWS Lightsail 等)上部署 Python 或 Node.js 应用,是开发者常见的需求。以下是详细的部署步骤和建议。
一、通用准备工作
1. 购买并登录轻量服务器
- 选择操作系统:推荐使用 Ubuntu 20.04/22.04 LTS。
- 获取公网 IP 和 SSH 登录信息(用户名通常是
root或ubuntu)。 - 使用 SSH 登录:
ssh root@your-server-ip
2. 更新系统
sudo apt update && sudo apt upgrade -y
二、部署 Python 应用(以 Flask/Django 为例)
1. 安装 Python 环境
sudo apt install python3 python3-pip python3-venv -y
2. 创建项目目录
mkdir /var/www/myapp
cd /var/www/myapp
3. 设置虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install flask gunicorn # 或 django
4. 编写简单 Flask 示例(app.py)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello from Flask on Light Server!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
5. 测试运行
gunicorn -w 2 -b 0.0.0.0:8000 app:app
6. 使用 Nginx 反向X_X(推荐)
安装 Nginx
sudo apt install nginx -y
配置 Nginx(/etc/nginx/sites-available/myapp)
server {
listen 80;
server_name your-domain-or-ip;
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;
}
}
启用配置
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
7. 使用 systemd 托管 Gunicorn(开机自启)
创建服务文件:/etc/systemd/system/myapp.service
[Unit]
Description=Gunicorn for myapp
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/var/www/myapp
ExecStart=/var/www/myapp/venv/bin/gunicorn -w 2 -b 127.0.0.1:8000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
三、部署 Node.js 应用(以 Express 为例)
1. 安装 Node.js
推荐使用 NodeSource 安装最新稳定版:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
验证:
node --version
npm --version
2. 创建项目目录
mkdir /var/www/nodeapp && cd /var/www/nodeapp
npm init -y
npm install express
3. 编写简单 Express 示例(app.js)
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello from Node.js on Light Server!');
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server running at http://0.0.0.0:${PORT}`);
});
4. 使用 PM2 进程管理器(推荐)
npm install -g pm2
pm2 start app.js --name "my-node-app"
pm2 startup # 设置开机自启
pm2 save
5. 使用 Nginx 反向X_X(同上)
配置 /etc/nginx/sites-available/nodeapp:
server {
listen 80;
server_name your-domain-or-ip;
location / {
proxy_pass http://127.0.0.1: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 ln -s /etc/nginx/sites-available/nodeapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
四、安全与优化建议
-
防火墙设置
sudo ufw allow 'Nginx Full' sudo ufw enable -
绑定域名 + HTTPS(使用 Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -
定期更新系统和软件包
sudo apt update && sudo apt upgrade -y -
监控资源使用
- 使用
htop、nmon监控 CPU/内存。 - 轻量服务器资源有限,避免运行过多服务。
- 使用
五、总结对比
| 项目 | Python (Flask) | Node.js (Express) |
|---|---|---|
| 运行方式 | Gunicorn + Nginx | PM2 + Nginx |
| 进程管理 | systemd | PM2 |
| 包管理 | pip / requirements.txt | npm / package.json |
| 推荐工具 | virtualenv, gunicorn | pm2, nodemon |
✅ 提示:轻量服务器适合小型应用、博客、API 服务等。若访问量大,建议升级到标准云服务器或使用容器化(Docker)方案。
如需自动化部署脚本或 Docker 部署方式,也可以进一步提供。
云知道CLOUD