线上崩溃复盘
图片分类服务使用FastAPI构建,通过nginx反向代理到80端口对外提供服务。当流量较大时出现的502和504错误是常见的网关问题:
- 502 Bad Gateway:nginx无法从上游服务器(您的FastAPI应用)获得有效响应
- 504 Gateway Timeout:nginx在等待上游服务器响应时超时
可能原因:
- 处理时间长:
- 您的应用使用Gemini AI分析图片,这是一个耗时操作
- 当请求量大时,处理时间可能超过nginx默认的超时设置
- 资源不足:
- 服务器CPU/内存资源不足
- 可能导致应用崩溃或响应缓慢
- 并发限制:
- FastAPI默认的workers数量可能不足以处理大量并发请求
- 连接问题:
- 与Gemini API的连接可能在高负载下不稳定
解决方案:
- 增加nginx超时设置:
text
Apply to main.py
修改nginx配置,增加proxy_read_timeout和proxy_connect_timeout
- 优化FastAPI应用:
- 使用更多的workers
- 添加请求限流
- 优化图片处理流程
- 监控和日志:
- 添加更详细的日志记录
- 设置监控以便及时发现问题
- 资源扩展:
- 考虑增加服务器资源
- 或实现负载均衡部署多个实例