第七章:生产部署¶
Nginx 配置¶
server {
listen 80;
server_name example.com;
location /events {
proxy_pass http://backend:8000;
proxy_http_version 1.1;
# SSE 必需配置
proxy_set_header Connection '';
proxy_buffering off;
proxy_cache off;
# 超时配置
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
# 禁用缓冲
chunked_transfer_encoding off;
}
}
负载均衡¶
upstream backend {
server backend1:8000;
server backend2:8000;
}
server {
location /events {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_buffering off;
# 会话保持
ip_hash;
}
}
Docker 部署¶
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
# docker-compose.yml
version: '3'
services:
backend:
build: .
ports:
- "8000:8000"
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- backend
小结¶
生产部署要点:
- Nginx 配置:禁用缓冲、长连接
- 负载均衡:会话保持
- Docker 部署:容器化
下一章我们将学习最佳实践。