在阿里云99元/年(如轻量应用服务器)的2核2G内存、3M带宽配置上部署 Python 项目是完全可行的,尤其适合中小型 Web 应用、API 服务或爬虫等。以下是详细的部署步骤和优化建议。
🧩 一、准备工作
-
购买并登录服务器
- 购买阿里云轻量应用服务器(99元/年,Ubuntu/CentOS 系统)
- 获取公网 IP、用户名(通常是
root)、密码或密钥 - 使用 SSH 登录:
ssh root@你的公网IP
-
更新系统
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS sudo yum update -y
🐍 二、安装 Python 环境
方法1:使用系统自带 Python(推荐升级)
# 查看当前 Python 版本
python3 --version
# 安装 Python3 和 pip
sudo apt install python3 python3-pip python3-venv -y
方法2:编译安装最新版 Python(可选)
# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget -y
# 下载并编译 Python 3.11(以3.11为例)
cd /tmp
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar -xf Python-3.11.6.tgz
cd Python-3.11.6
./configure --enable-optimizations
make -j2 # 2核,最多用2线程
sudo make altinstall
# 创建软链接
sudo ln -sf /usr/local/bin/python3.11 /usr/bin/python3
sudo ln -sf /usr/local/bin/pip3.11 /usr/bin/pip3
📦 三、创建虚拟环境 & 部署项目
# 创建项目目录
mkdir /var/www/myapp && cd /var/www/myapp
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖(假设有 requirements.txt)
pip install -r requirements.txt
# 常见依赖:flask, django, fastapi, gunicorn 等
🌐 四、运行方式选择(推荐 Gunicorn + Nginx)
1. 使用 Gunicorn 运行 Python Web 应用(如 Flask/FastAPI)
pip install gunicorn
启动示例(Flask):
gunicorn -w 2 -b 127.0.0.1:8000 app:app
-w 2:2个工作进程(2核,建议1~2个worker)-b:绑定本地端口app:app:模块名:应用实例名
⚠️ 注意:2G 内存不要开太多 worker,避免 OOM。
2. 安装并配置 Nginx(反向X_X)
sudo apt install nginx -y
编辑配置:
sudo nano /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
🔁 五、使用 Supervisor 守护进程
防止 Gunicorn 意外退出。
sudo apt install supervisor -y
创建配置文件:
sudo nano /etc/supervisor/conf.d/myapp.conf
内容:
[program:myapp]
command=/var/www/myapp/venv/bin/gunicorn -w 2 -b 127.0.0.1:8000 app:app
directory=/var/www/myapp
user=root
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/myapp.log
加载并启动:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myapp
🔐 六、安全与优化建议(重要!)
-
防火墙设置
sudo ufw allow 'Nginx Full' sudo ufw enable -
阿里云控制台安全组
- 开放端口:80 (HTTP), 443 (HTTPS), 22 (SSH)
- 建议关闭其他端口
-
启用 HTTPS(免费 SSL)
使用 Let’s Encrypt:sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -
资源监控
htop # 实时查看 CPU/内存 free -h # 查看内存使用 df -h # 查看磁盘 -
避免内存溢出
- 不要运行太多进程
- 日志定期清理
- 可考虑添加 swap(1G 左右):
sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
✅ 七、访问你的网站
浏览器输入:
http://你的公网IP
或绑定域名后访问。
📌 总结:适合场景
| 项目类型 | 是否推荐 |
|---|---|
| Flask/Django API | ✅ 推荐 |
| FastAPI 后端 | ✅ 推荐 |
| 小型网站/博客 | ✅ 推荐 |
| 高并发服务 | ❌ 不推荐(需更高配置) |
| 数据分析/机器学习 | ⚠️ 内存紧张,慎用 |
如有具体框架(如 Django、Flask、FastAPI),可以告诉我,我可以提供更具体的部署脚本和配置模板。
秒懂云