使用上游负载平衡时刷新 Nginx DNS 缓存

使用上游负载平衡时刷新 Nginx DNS 缓存

我最近遇到了一个问题,由于 Nginx 中的 DNS 缓存,我们使用了upstream相关 Nginx 配置中的设置,导致服务受到负面影响。我已经查看了以下问题并寻找解决方案,但均未使用upstreamhttps://stackoverflow.com/questions/26956979/error-with-ip-and-nginx-as-reverse-proxy。由于我们使用 AWS ELB,因此我们识别了位于上游的两个相同服务器值。相关部分如下所示:

upstream my_server {
  server blah.domain.com:443;
  server blah.domain.com:443;
}

server {

  listen 1024;
  access_log /var/log/nginx/my-access-log.log;
  error_log /var/log/nginx/my-error-log.log;

  keepalive_timeout 5;
  client_max_body_size 40M;

  location /blah {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host blah.domain.com;
    proxy_redirect off;
    proxy_pass https://my_server;
}

因此,我知道我可以使用解析器并创建一个 http 部分,服务器部分位于其中,但是我无法设置随后将使用 Nginx 负载均衡器功能的变量。我无法在上游设置变量,因为它不受支持(这将强制 DNS 缓存刷新,如下所述:http://forum.nginx.org/read.php?2,215830,215832#msg-215832)。

所以我的问题是如何解决这个问题?如何维护upstream提供负载平衡的功能,同时确保在不重新启动 Nginx 社区版中的服务的情况下刷新 DNS 缓存?

答案1

所描述的功能由 NGINX Plus 提供,它是提供附加功能的完整应用程序交付平台。

您可以阅读“动态重新配置“NGINX Plus 提供的功能,并参阅“动态配置组”部分以获取有关此特定功能的更多信息。

(免责声明:我隶属于 NGINX, Inc - 该公司开发了 NGINX 的两个版本)。

相关内容