nginx 配置刷新域名 在企业网站或内部系统中,经常需要通过域名访问 Nginx 代理的服务。如果域名解析记录发生了变更(例如更换了服务器 IP、新增了 CDN 节点),或者修改了 `/etc/hosts` 文件,经常发现刷新后依然访问到旧地址。这并非 Nginx 缓存了域名,而是系统或浏览器对 DNS 结果进行了缓存。本文介绍如何从 Nginx 层面合理配置域名刷新机制,以及如何配合系统层操作
为什么需要刷新 Nginx 域名解析 当 Nginx 作为反向代理,`upstream` 或 `proxy_pass` 后面使用域名时,Nginx 在启动或 reload 时会将域名解析为 IP 地址,并长期缓存。如果该域名对应的 IP 发生变化(例如后端服务迁移、负载均衡扩容),Nginx 仍然会向旧 IP 转发请求,导致服务异常。 这种问题常见于 Docker 环境或云原生架构下,服务实例频繁
1. 操作前的检查 在刷新域名配置前,请先确认以下信息: Nginx 安装路径及配置文件位置(通常为 `/etc/nginx/nginx.conf` 或 `/usr/local/nginx/conf/nginx.conf`)当前 Nginx 运行状态与进程权限域名 DNS 解析是否已指向目标服务器 IP 若域名尚未完成解析,请先在 DNS 服务商处添加或修改 A 记录,并等待解析生效(TTL 时间
问题诊断 很多网站在使用 Nginx 作为反向代理时,都遇到过这样的场景:后端域名(如 `api.example.com`)解析到的服务器 IP 发生了变化,但 Nginx 仍然将请求转发到旧的 IP,导致服务异常。这是因为 Nginx 在启动时或 reload 后会解析配置中的域名,并将解析结果缓存到自身进程内。默认情况下,它不会感知到上游域名的 DNS 记录变化。 要解决这个问题,本质上需要让