Linux 和 Python 是快速部署应用的理想组合,下面我将介绍几种高效的部署方式:
python3 your_app.py
nohup
或 &
保持后台运行python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python your_app.py
# Flask 生产环境推荐
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 your_app:app
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# Dockerfile 示例
FROM python:3.9-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "your_app:app"]
构建和运行:
docker build -t your-app .
docker run -d -p 8000:8000 --name your-app your-app
# docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8000:8000"
environment:
- FLASK_ENV=production
# fabfile.py
from fabric import task
@task
def deploy(c):
c.run("git pull origin master")
c.run("docker-compose up -d --build")
# deploy.yml
- hosts: webservers
tasks:
- name: Pull latest code
git:
repo: 'git@github.com:user/repo.git'
dest: /opt/app
- name: Restart app
docker_compose:
project_src: /opt/app
up: true
detach: true
build: true
# 使用 Zappa 部署 Flask 到 Lambda
pip install zappa
zappa init
zappa deploy production
heroku login
heroku create
git push heroku master
Linux + Python 的组合提供了极高的部署灵活性,从最简单的脚本到大规模分布式应用都能高效部署。根据您的具体需求选择合适的部署方式即可。