阿里云轻量应用服务器怎么部署python?

在阿里云轻量应用服务器(Simple Application Server)上部署 Python 环境,通常有两种主流路径:一是使用官方镜像一键安装,二是通过 Linux 命令行手动配置。对于大多数开发者而言,推荐使用“宝塔面板”或“Docker”方案,因为轻量服务器资源有限(通常为单核/双核),手动编译源码包容易遇到依赖缺失问题,而容器化和面板化管理能极大降低维护成本。

以下是三种最稳妥、高效的部署方案,按推荐程度排序:

方案一:使用 Docker 部署(最推荐,隔离性好,迁移方便)

Docker 是云原生时代的标准做法,它能确保你的开发环境与生产环境完全一致,避免“在我机器上能跑”的问题。

  1. 登录服务器
    通过 SSH 客户端(如 Xshell、FinalShell 或终端)连接到你的轻量服务器。

  2. 安装 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
  3. 编写 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 等。

  4. 构建并运行
    将项目文件上传到服务器(可使用 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 项目管理器

  1. 安装宝塔面板
    在 SSH 中输入以下命令(根据系统版本选择,以下为 Ubuntu/Debian 示例):

    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

    安装完成后,终端会输出公网 IP 和管理员账号密码,请妥善保存。

  2. 登录面板
    浏览器访问 http://<你的服务器IP>:8888,输入账号密码登录。

  3. 安装 Python 项目管理器

    • 进入【软件商店】 -> 【已安装】。
    • 搜索 “Python 项目管理器”,点击安装。
    • 同时建议安装 Nginx(用于反向X_X)和 MySQL(如果需要数据库)。
  4. 创建站点和 Python 项目

    • 在左侧菜单点击【网站】->【添加站点】,绑定域名或 IP。
    • 点击【Python 项目】->【添加项目】。
    • 填写项目信息:
      • 项目名称:自定义
      • 运行目录:选择你存放代码的路径
      • 启动文件:如 app.pymanage.py
      • 框架类型:Flask/Django/FastAPI 等
      • Python 版本:选择 3.7+
    • 点击提交,系统会自动处理虚拟环境和依赖。
  5. 配置反向X_X
    宝塔会自动生成一个反向X_X规则,将 80/443 端口的 HTTP 请求转发到 Python 应用的端口(如 8000)。这样用户只需访问域名/IP 即可,无需加端口号。


方案三:原生 Linux 环境部署(适合高级用户或极简需求)

如果你不想用 Docker 或宝塔,可以直接在服务器上配置 Python 环境。

  1. 更新系统

    sudo apt-get update && sudo apt-get upgrade -y
  2. 安装 Python 和 pip

    sudo apt-get install python3 python3-pip python3-venv
  3. 创建虚拟环境(最佳实践)
    避免污染系统全局 Python:

    cd /home/wwwroot/myproject  # 假设项目放在这里
    python3 -m venv venv
    source venv/bin/activate    # 激活虚拟环境
  4. 安装依赖

    pip install -r requirements.txt
  5. 使用 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 实例对象名。

  6. 设置 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
  7. 配置 Nginx 反向X_X
    安装 Nginx 后,修改配置文件指向 myapp.sock,实现静态文件处理和 HTTPS 支持。


关键注意事项

  1. 安全组配置
    无论采用哪种方案,务必登录阿里云控制台,找到【防火墙】或【安全组】,添加入方向规则,放行所需端口(如 80, 443, 8080 等)。这是新手最容易忽略导致“连不上”的原因。

  2. 内存限制
    轻量服务器内存较小(如 1GB 或 2GB)。如果使用 Django 或大型 Java 应用,需特别注意内存溢出。建议在生产环境中禁用不必要的后台进程,并监控内存使用率。

  3. 域名解析与备案
    如果绑定国内域名,必须完成 ICP 备案。阿里云轻量服务器支持直接绑定已备案域名,未备案域名只能使用 IP 访问(且可能被限制)。

  4. 备份策略
    定期使用阿里云的“快照”功能对系统盘和数据盘进行备份,防止误操作导致数据丢失。

以上方案中,Docker 方案最适合长期维护和团队协作;宝塔面板最适合个人快速上线项目;原生部署适合对性能极致优化或有特殊需求的场景。根据你的技术栈和项目复杂度选择即可。

未经允许不得转载:CLOUD云枢 » 阿里云轻量应用服务器怎么部署python?