在阿里云轻量应用服务器(Simple Application Server)上部署 Python 环境,通常有两种主流路径:一是使用官方镜像一键安装,二是通过 Linux 命令行手动配置。对于大多数开发者而言,推荐使用“宝塔面板”或“Docker”方案,因为轻量服务器资源有限(通常为单核/双核),手动编译源码包容易遇到依赖缺失问题,而容器化和面板化管理能极大降低维护成本。
以下是三种最稳妥、高效的部署方案,按推荐程度排序:
方案一:使用 Docker 部署(最推荐,隔离性好,迁移方便)
Docker 是云原生时代的标准做法,它能确保你的开发环境与生产环境完全一致,避免“在我机器上能跑”的问题。
-
登录服务器
通过 SSH 客户端(如 Xshell、FinalShell 或终端)连接到你的轻量服务器。 -
安装 Docker 和 Docker Compose
轻量服务器通常基于 Debian 或 CentOS。以 Debian 为例(如果是 CentOS,命令略有不同):# 更新源 apt-get update # 安装必要依赖 apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release # 添加 Docker GPG 密钥和仓库 curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list # 安装 Docker apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io # 验证安装 docker --version -
编写 Dockerfile
在你的本地电脑创建项目文件夹,新建Dockerfile:FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"]注:
requirements.txt需列出所有依赖,如flask,requests等。 -
构建并运行
将项目文件上传到服务器(可使用scp或 FinalShell 的拖拽功能),然后执行:docker build -t my-python-app . docker run -d -p 8080:8080 --name my-app my-python-app此时,访问
http://<你的服务器IP>:8080即可看到服务。记得在阿里云控制台的安全组中放行 8080 端口。
方案二:使用宝塔面板(Bt Panel)可视化操作(适合新手)
如果你不熟悉 Linux 命令,宝塔面板是最简单的选择。它集成了 Nginx/Apache、MySQL、PHP 和 Python 项目管理器。
-
安装宝塔面板
在 SSH 中输入以下命令(根据系统版本选择,以下为 Ubuntu/Debian 示例):wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec安装完成后,终端会输出公网 IP 和管理员账号密码,请妥善保存。
-
登录面板
浏览器访问http://<你的服务器IP>:8888,输入账号密码登录。 -
安装 Python 项目管理器
- 进入【软件商店】 -> 【已安装】。
- 搜索 “Python 项目管理器”,点击安装。
- 同时建议安装 Nginx(用于反向X_X)和 MySQL(如果需要数据库)。
-
创建站点和 Python 项目
- 在左侧菜单点击【网站】->【添加站点】,绑定域名或 IP。
- 点击【Python 项目】->【添加项目】。
- 填写项目信息:
- 项目名称:自定义
- 运行目录:选择你存放代码的路径
- 启动文件:如
app.py或manage.py - 框架类型:Flask/Django/FastAPI 等
- Python 版本:选择 3.7+
- 点击提交,系统会自动处理虚拟环境和依赖。
-
配置反向X_X
宝塔会自动生成一个反向X_X规则,将 80/443 端口的 HTTP 请求转发到 Python 应用的端口(如 8000)。这样用户只需访问域名/IP 即可,无需加端口号。
方案三:原生 Linux 环境部署(适合高级用户或极简需求)
如果你不想用 Docker 或宝塔,可以直接在服务器上配置 Python 环境。
-
更新系统
sudo apt-get update && sudo apt-get upgrade -y -
安装 Python 和 pip
sudo apt-get install python3 python3-pip python3-venv -
创建虚拟环境(最佳实践)
避免污染系统全局 Python:cd /home/wwwroot/myproject # 假设项目放在这里 python3 -m venv venv source venv/bin/activate # 激活虚拟环境 -
安装依赖
pip install -r requirements.txt -
使用 Gunicorn + Nginx 部署
Python 自带的http.server不适合生产环境。建议使用 Gunicorn 作为 WSGI 服务器。pip install gunicorn gunicorn -w 4 -b 0.0.0.0:8000 app:app注:
app:app指的是app.py文件中的 Flask/Django 实例对象名。 -
设置 systemd 服务开机自启
创建/etc/systemd/system/myapp.service:[Unit] Description=Gunicorn instance to serve myapp After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/home/wwwroot/myproject Environment="PATH=/home/wwwroot/myproject/venv/bin" ExecStart=/home/wwwroot/myproject/venv/bin/gunicorn --workers 4 --bind unix:myapp.sock -m 007 app:app [Install] WantedBy=multi-user.target然后执行:
sudo systemctl start myapp sudo systemctl enable myapp -
配置 Nginx 反向X_X
安装 Nginx 后,修改配置文件指向myapp.sock,实现静态文件处理和 HTTPS 支持。
关键注意事项
-
安全组配置
无论采用哪种方案,务必登录阿里云控制台,找到【防火墙】或【安全组】,添加入方向规则,放行所需端口(如 80, 443, 8080 等)。这是新手最容易忽略导致“连不上”的原因。 -
内存限制
轻量服务器内存较小(如 1GB 或 2GB)。如果使用 Django 或大型 Java 应用,需特别注意内存溢出。建议在生产环境中禁用不必要的后台进程,并监控内存使用率。 -
域名解析与备案
如果绑定国内域名,必须完成 ICP 备案。阿里云轻量服务器支持直接绑定已备案域名,未备案域名只能使用 IP 访问(且可能被限制)。 -
备份策略
定期使用阿里云的“快照”功能对系统盘和数据盘进行备份,防止误操作导致数据丢失。
以上方案中,Docker 方案最适合长期维护和团队协作;宝塔面板最适合个人快速上线项目;原生部署适合对性能极致优化或有特殊需求的场景。根据你的技术栈和项目复杂度选择即可。
CLOUD云枢