首页主机资讯Ubuntu上Python如何部署应用

Ubuntu上Python如何部署应用

时间2025-10-31 19:36:03发布访客分类主机资讯浏览1465
导读:Ubuntu上Python应用部署完整流程 一、前置准备 更新系统包:确保系统软件包为最新版本 sudo apt update && sudo apt upgrade -y 安装基础工具:安装Python、pip、git等...

Ubuntu上Python应用部署完整流程

一、前置准备

  1. 更新系统包:确保系统软件包为最新版本
    sudo apt update & & sudo apt upgrade -y
  2. 安装基础工具:安装Python、pip、git等必要工具
    sudo apt install python3 python3-pip python3-venv git curl -y

二、部署核心步骤

1. 上传应用代码

  • Git克隆(推荐,适用于版本控制的项目):
    git clone https://github.com/your-username/your-python-app.git /opt/your-app
  • SCP传输(适用于本地已有代码):
    scp -r /local/path/to/app user@your_server_ip:/opt/your-app

2. 创建并激活虚拟环境

虚拟环境可隔离项目依赖,避免全局包冲突:

cd /opt/your-app
python3 -m venv venv          # 创建虚拟环境
source venv/bin/activate     # 激活虚拟环境(激活后命令行前会显示(venv))

3. 安装项目依赖

若项目根目录有requirements.txt文件(包含Flask、Django等依赖),执行:
pip install --upgrade pip & & pip install -r requirements.txt
(若未生成requirements.txt,可通过pip freeze > requirements.txt生成)

4. 使用生产级WSGI服务器(以Gunicorn为例)

Python内置开发服务器(如app.run())不适合生产环境,需用Gunicorn作为WSGI服务器:

# 安装Gunicorn
pip install gunicorn

# 启动应用(假设应用入口为app.py,应用对象为app)
gunicorn -w 4 -b 127.0.0.1:8000 app:app
# 参数说明:-w 4(4个工作进程)、-b 绑定地址(127.0.0.1仅本地访问)、app:app(app.py中的Flask/Django应用对象)

5. 配置Nginx反向代理(提升性能与安全性)

Nginx可作为反向代理,处理静态文件、负载均衡及SSL加密:

# 安装Nginx
sudo apt install nginx -y

# 创建Nginx配置文件(针对你的应用)
sudo nano /etc/nginx/sites-available/your-app

# 添加以下内容(替换your_domain_or_ip为实际域名/IP)
server {
    
    listen 80;
    
    server_name your_domain_or_ip;


    location / {
    
        proxy_pass http://127.0.0.1:8000;
      # 转发到Gunicorn监听的地址
        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;

    }


    # 可选:处理静态文件(如CSS/JS/图片)
    location /static/ {
    
        alias /opt/your-app/static/;
  # 指向应用中的静态文件目录
    }

}
    

# 启用配置(创建软链接到sites-enabled目录)
sudo ln -s /etc/nginx/sites-available/your-app /etc/nginx/sites-enabled/

# 测试Nginx配置语法
sudo nginx -t

# 重启Nginx使配置生效
sudo systemctl restart nginx

6. 设置开机自启动(确保服务稳定)

通过systemd创建服务,实现应用随系统重启自动启动:

# 创建systemd服务文件
sudo nano /etc/systemd/system/your-app.service

# 添加以下内容(替换路径、用户、组为实际值)
[Unit]
Description=Gunicorn server for Your Python App
After=network.target

[Service]
User=your_username       # 替换为你的Ubuntu用户名(如ubuntu)
Group=www-data           # 通常用www-data组(Nginx默认用户)
WorkingDirectory=/opt/your-app
Environment="PATH=/opt/your-app/venv/bin"
ExecStart=/opt/your-app/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always           # 崩溃后自动重启

[Install]
WantedBy=multi-user.target

# 重载systemd配置
sudo systemctl daemon-reload

# 启动服务并设置开机自启
sudo systemctl start your-app
sudo systemctl enable your-app

# 检查服务状态(确认是否运行中)
sudo systemctl status your-app

三、可选优化步骤

1. 配置防火墙(允许HTTP/HTTPS流量)

若服务器启用了UFW防火墙,需开放80(HTTP)和443(HTTPS)端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable  # 启用防火墙(若未启用)

2. 部署Docker容器(环境一致性)

若需确保开发与生产环境一致,可使用Docker打包应用:

# 创建Dockerfile(在应用根目录)
nano Dockerfile

# 添加以下内容(以Flask为例)
FROM python:3.9-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 8000
CMD ["gunicorn", "-w 4", "-b 0.0.0.0:8000", "app:app"]

# 构建Docker镜像
docker build -t your-python-app .

# 运行Docker容器(映射80端口到宿主机)
docker run -d -p 80:8000 your-python-app

四、验证部署

打开浏览器访问http://your_domain_or_ip,若看到应用首页(如Flask的"Hello, World!"),则部署成功。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu上Python如何部署应用
本文地址: https://pptw.com/jishu/740243.html
Ubuntu中Python如何进行机器学习 Ubuntu中Python如何处理文件

游客 回复需填写必要信息