技术与生活 / 一篇记录
公开接口和管理接口,最好有明确分界
代理入口应区分公开采集接口与需要登录的管理接口。
一个应用往往同时提供采集、健康检查与管理功能。反向代理应只把计划公开的路径映射出去,应用本身也要持续进行认证与授权。
从一个例子看起
配置片段不是完整配置文件,应放入正确的上下文,并按实际环境调整路径与端口。
location = /health { proxy_pass http://127.0.0.1:3000/health; }
核查非预期管理路径是否仍不可从此入口访问。
排查时再往前走一步
测试一个允许路径和一个不应公开的管理路径,确认限制不是只藏住首页。还要检查尾部斜杠、大小写与路径重写是否产生意外入口。
健康检查接口尽量返回必要状态,不要顺带输出环境变量、连接串或完整系统配置。它可以帮助运维判断可用性,但不应因此成为泄露内部信息的入口。
隐藏路径不能替代身份认证,授权必须由后端执行。
参考:Nginx 文档。