在CentOS中部署Python应用可以通过多种方式实现,以下是一些常见的方法:
安装必要的软件包
sudo yum install python3 python3-pip nginx 创建虚拟环境并安装应用依赖
sudo mkdir /var/www/myapp cd /var/www/myapp sudo python3 -m venv venv source venv/bin/activate pip install flask gunicorn 部署应用 假设你的Flask应用文件名为app.py,并且有一个requirements.txt文件列出所有依赖。
gunicorn -w 4 -b 127.0.0.1:8000 app:app 配置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; } } 重启Nginx
sudo systemctl restart nginx 安装Docker
sudo yum install docker sudo systemctl start docker sudo systemctl enable docker 创建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"] 构建Docker镜像
docker build -t myapp . 运行Docker容器
docker run -d -p 8000:8000 myapp 创建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 启用并启动服务
sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service 选择适合你应用规模和需求的方法进行部署。对于生产环境,通常推荐使用Nginx和Gunicorn的组合,并结合Docker进行容器化部署。