centos

如何在CentOS中部署Python应用

小樊
32
2025-05-17 06:22:52
栏目: 编程语言

在CentOS中部署Python应用可以通过多种方式实现,以下是一些常见的方法:

方法一:使用Gunicorn和Nginx

  1. 安装必要的软件包

    sudo yum install python3 python3-pip nginx
    
  2. 创建虚拟环境并安装应用依赖

    sudo mkdir /var/www/myapp
    cd /var/www/myapp
    sudo python3 -m venv venv
    source venv/bin/activate
    pip install flask gunicorn
    
  3. 部署应用 假设你的Flask应用文件名为app.py,并且有一个requirements.txt文件列出所有依赖。

    gunicorn -w 4 -b 127.0.0.1:8000 app:app
    
  4. 配置Nginx 编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf):

    server {
        listen 80;
        server_name your_domain.com;
    
        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;
        }
    }
    
  5. 重启Nginx

    sudo systemctl restart nginx
    

方法二:使用Docker

  1. 安装Docker

    sudo yum install docker
    sudo systemctl start docker
    sudo systemctl enable docker
    
  2. 创建Dockerfile 在你的应用目录中创建一个Dockerfile

    FROM python:3.9-slim
    
    WORKDIR /app
    
    COPY requirements.txt requirements.txt
    RUN pip install -r requirements.txt
    
    COPY . .
    
    CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "app:app"]
    
  3. 构建Docker镜像

    docker build -t myapp .
    
  4. 运行Docker容器

    docker run -d -p 8000:8000 myapp
    

方法三:使用systemd服务

  1. 创建systemd服务文件 创建一个名为myapp.service的文件:

    [Unit]
    Description=My Python Application
    After=network.target
    
    [Service]
    User=your_user
    Group=your_group
    WorkingDirectory=/var/www/myapp
    Environment="PATH=/var/www/myapp/venv/bin"
    ExecStart=/var/www/myapp/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
    
    [Install]
    WantedBy=multi-user.target
    
  2. 启用并启动服务

    sudo systemctl daemon-reload
    sudo systemctl enable myapp.service
    sudo systemctl start myapp.service
    

注意事项

选择适合你应用规模和需求的方法进行部署。对于生产环境,通常推荐使用Nginx和Gunicorn的组合,并结合Docker进行容器化部署。

0
看了该问题的人还看了