Python 在 Linux 快速部署实操指南
一、最快路径 Gunicorn + Nginx + Systemd
server {
listen 80;
server_name your_domain_or_IP;
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;
}
}
[Unit]
Description=Gunicorn instance for myproject
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/project
ExecStart=/opt/venv/bin/gunicorn --workers 3 --bind unix:/run/myproject.sock myproject.wsgi:application
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
二、Docker 一条命令部署
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
三、关键补充与常见问题
location /static/ {
alias /path/to/project/staticfiles/;
}
location /media/ {
alias /path/to/project/media/;
}
[program:myproject]
command=/opt/venv/bin/gunicorn --workers 3 myproject.wsgi:application
directory=/path/to/project
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/myproject.err.log
stdout_logfile=/var/log/myproject.out.log