Reliability
从一次 502 说起:反向代理的可用性边界
502 在说什么
当 Nginx 返回 502,它本身通常仍是正常的。问题发生在代理与上游服务之间:连接被重置、响应超时,或上游没有正确返回 HTTP 响应。先区分“入口存活”和“上游可达”,排查会快得多。
不要让静态文件依赖易波动的链路
样式、脚本和页面框架决定用户能否看到完整页面。它们适合在离用户更近的入口服务器本地提供,并设置合理缓存。即便 API 短暂波动,用户仍能看到页面和已有内容。
缓存不是掩盖故障
缓存的作用是把可重用的读取请求从上游依赖中拆出来。对于静态资源可以使用较长有效期;对于只读数据可以使用很短缓存,并在上游异常时使用最近一次的有效响应。写操作、后台管理和身份相关请求则不应缓存。
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_background_update on;
proxy_cache_lock on;真正的长期方案
缓存能提高韧性,但不能替代正确的部署拓扑。长期运行的服务应尽量减少不必要的跨网络依赖,给关键链路做监控,并准备可验证的恢复步骤。