文档首页/ 内容分发网络 CDN/ 最佳实践/ 客户端访问加速域名经过Nginx转发时,如何定期刷新DNS解析
更新时间:2024-06-14 GMT+08:00
分享

客户端访问加速域名经过Nginx转发时,如何定期刷新DNS解析

适用场景

如果您配置了Nginx代理转发,即:终端用户访问加速域名时,首先解析到Nginx服务器,由Nginx服务器将该请求转发到CDN节点,而Nginx服务器在启动/重载的时候会去解析转发的域名,此时域名如果修改了DNS解析,Nginx服务器将无法感知,从而导致域名无法解析,域名访问失败。

解决方案

如果想要定期刷新域名DNS解析,不用重启Nginx服务器,可以通过在Nginx上配置Resolver实现。

  • 示例一:
    1. Nginx服务器原“nginx.conf”配置:
      location /prod-url-test/ {
          ...
          proxy_pass http://$proxy_url;
       }
    2. 添加resolver后的配置:*.*.*.*为设备网络使用的公共DNS或本地DNS,可根据业务情况配置两个DNS,valid为解析结果有效期。
      location /prod-url-test/ {
          resolver *.*.*.* *.*.*.* valid=300s;
      resolver_timeout 10s;
         set $proxy_url "prod-url-test.example.com";
          proxy_pass http://$proxy_url;
       }
  • 示例二:
    1. Nginx服务器原“nginx.conf”配置:
      location = /test/example1.txt{
      expires 30s;
      rewrite ^/test/example2.txt break;
       proxy_pass https://test.example.com;
      }
    2. 添加resolver配置:*.*.*.*为设备网络使用的公共DNS或本地DNS,可根据业务情况配置两个DNS,valid为解析结果有效期。
      set $var_host "test.example.com";
      resolver *.*.*.* *.*.*.* valid=300s;
      resolver_timeout 10s;
      location = /test/example1.txt{
      expires 30s;
      rewrite ^/test/example2.txtbreak;
       proxy_pass https://$var_host;
      proxy_set_header Host test.example.com;
      }

相关文档