👨‍💻

jash's Blog

代码 · 生活 · 思考

Nginx 反向代理 + Docker 网关:多服务统一部署实践

2026-07-09后端运维

当一台服务器上跑了五六个 Web 服务(API 网关、前端页面、数据平台、AI 接口代理),各自监听不同端口时,管理就变得混乱了。我的做法是用一个 Nginx 容器做统一入口,所有外部请求都走 443,通过 Host 头分发到上游服务。配置上每个服务一个 conf 文件放在 conf.d/,主 server 段用 include /etc/nginx/conf.d/location-* 通配引入。好处是新增服务只需要写一个配置文件 + 重启 nginx,不用动任何已有服务的端口。

一个坑:location 块内的 proxy_pass 如果上游容器重启了(比如 docker-compose down/up),nginx 缓存的上游 IP 就失效了,需要配 set $upstream + resolver 127.0.0.11 让 nginx 用 Docker DNS 动态解析。

多源数据情报平台的数据采集架构

2026-07-08Python架构

最近在做的一个项目是从多个独立数据源(榜单、社交媒体、内容平台)采集热点数据,按源独立存储和分析。架构上采用了 Collector → Storage → Reporter → Frontend 四层拆分。每个 Collector 是一个独立的 FastAPI 微服务,各自将数据写入独立的数据表,互不耦合。

最有价值的设计决策是:API Key 不放在环境变量或 .env 文件里,而是存在数据库的 channels 表中,运行时临时读取。这样新增数据源不用改部署配置,而且 Key 轮换只需更新一行记录。代价是每个采集周期多一次 DB 查询,但可以接受。