加了pm2
PM2是一个Node.js的进程管理工具,主要提供以下功能:
- 进程守护 - 自动重启崩溃的应用程序
- 负载均衡 - 可以运行多个实例进行负载均衡
- 日志管理 - 集中管理应用日志
- 性能监控 - 监控CPU和内存使用情况
- 启动脚本 - 支持系统重启时自动启动应用
三层架构关系:
客户端请求 → Nginx(80端口) → PM2管理的FastAPI(5000端口)
各组件角色:
- FastAPI:
- 核心应用服务器,处理图像分类业务逻辑
- 监听在5000端口(localhost)
- 提供RESTful API接口
- 实现图像分析和处理功能
- PM2:
- 进程管理工具,管理FastAPI服务
- 负责服务的启动、停止、重启和监控
- 提供自动重启和日志管理功能
- 确保应用的稳定运行和故障恢复
- Nginx:
- 反向代理服务器,监听80端口(标准HTTP端口)
- 将外部请求转发到内部FastAPI服务(5000端口)
- 提供负载均衡能力(如果配置多个后端实例)
- 处理SSL终结(如果配置HTTPS)
- 提供静态资源缓存和更高效的HTTP处理
数据流向:
- 外部客户端访问服务器80端口
- Nginx接收请求并转发到localhost:5000
- PM2管理的FastAPI处理请求
- FastAPI返回响应给Nginx
- Nginx将响应返回给客户端
这种架构的优势:
- Nginx处理并发连接更高效
- PM2确保应用进程的可靠性和资源管理
- FastAPI专注于业务逻辑实现
- 分层结构便于扩展和维护
Nginx配置显示它作为反向代理将请求转发到内部的FastAPI服务,同时添加了一些HTTP头信息和超时设置,还支持WebSocket连接。