在阿里云轻量应用服务器上部署 Python 项目,通常有几种常见方式。下面我将以 最常用、最适合新手 的方式——使用 Python + Flask/Django + Nginx + Gunicorn/uWSGI 架构为例,提供完整步骤。
✅ 假设你使用的是 Ubuntu/Debian 或 CentOS 系统(阿里云默认镜像多为这两种)。
🚀 一、准备工作
- 登录阿里云控制台,进入【轻量应用服务器】实例。
- 通过 SSH 连接到服务器:
ssh root@你的服务器IP -
更新系统软件包:
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS sudo yum update -y
🐍 二、安装 Python 和 pip
Ubuntu/Debian:
sudo apt install python3 python3-pip python3-venv -y
CentOS:
sudo yum install python3 python3-pip -y
# 如果版本太旧,可考虑使用 Software Collections 或编译安装
验证安装:
python3 --version
pip3 --version
📁 三、创建项目目录与虚拟环境
mkdir ~/myproject
cd ~/myproject
# 创建虚拟环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
💡 以后每次使用项目前,需先
source myenv/bin/activate
📦 四、安装依赖(以 Flask 为例)
pip install flask gunicorn
创建一个简单的 app.py:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World! from Python on Alibaba Cloud!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
测试运行:
gunicorn --bind 0.0.0.0:8000 app:app
浏览器访问 http://你的服务器IP:8000,应看到 “Hello, World!”。
🌐 五、配置 Nginx 反向X_X(可选但推荐)
安装 Nginx:
# Ubuntu/Debian
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
创建 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/myproject
内容如下(Ubuntu 示例):
server {
listen 80;
server_name 你的域名或服务器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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用站点并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
现在访问 http://你的服务器IP 即可看到 Python 应用输出。
⚙️ 六、设置开机自启(使用 systemd)
创建服务文件:
sudo nano /etc/systemd/system/myproject.service
内容:
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/myproject
Environment="PATH=/root/myproject/myenv/bin"
ExecStart=/root/myproject/myenv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
注意:你需要创建一个
wsgi.py文件:from app import app as application
启动服务:
sudo systemctl daemon-reload
sudo systemctl start myproject
sudo systemctl enable myproject
然后修改 Nginx 配置中的 proxy_pass 为:
proxy_pass http://unix:/root/myproject/myproject.sock;
重启 Nginx:
sudo systemctl restart nginx
🔒 七、安全建议
-
开放防火墙端口(阿里云控制台 → 防火墙规则):
- 开放 80(HTTP)、443(HTTPS)
- 如果不用 8000 端口,可关闭
-
使用 HTTPS(推荐 Let’s Encrypt):
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d 你的域名 -
定期更新系统和依赖:
sudo apt upgrade -y cd ~/myproject && source myenv/bin/activate && pip install --upgrade -r requirements.txt
🧪 八、其他框架支持
- Django:类似流程,用
gunicorn mysite.wsgi:application - FastAPI:用
uvicorn main:app --host 0.0.0.0 --port 8000 - Flask + SQLite/MySQL:记得安装对应数据库驱动
✅ 总结流程图
SSH 登录 → 安装 Python/pip → 创建虚拟环境 → 安装依赖 → 写代码 →
→ 用 Gunicorn 启动 → Nginx 反向X_X → Systemd 守护进程 → 安全加固
如需部署更复杂的项目(如带数据库、静态文件、多 worker),可进一步扩展。欢迎告诉我你的具体框架和需求,我可以提供更定制化的方案!
云服务器