AWS 中的负载均衡器和代理设置表现出不稳定的性能

AWS 中的负载均衡器和代理设置表现出不稳定的性能

背景

最终用户发送的 HTTP 请求将按www.stuff.com/things如下方式处理:

  1. 由应用程序负载均衡器(公共负载均衡器)接收,该负载均衡到 NGINX 反向代理(我们称之为安全代理)。
  2. 安全代理将请求路由到私有应用程序负载均衡器。
  3. 私有负载均衡器根据 URL 路由流量。如果 URL 正确,/things/...则请求被路由到另一个 NGINX 代理。
  4. 第二个 NGINX 代理(我们称之为代理things)将所有请求路由到经典负载均衡器。
  5. 经典负载均衡器监听端口 80 和 50000,并将请求平衡到托管things应用程序的实例。

总结一下:我有公共负载均衡器, 这安全代理, 这私有负载均衡器, 这things代理人以及经典负载均衡器。

问题

当用户尝试访问时www.stuff.com/things,他们会等待,等待,最终收到 HTTP 504:网关超时。或者,页面立即加载。或者,某些元素加载迅速,而其他元素则挂起。

调试

我尝试从链中的多个地方发出请求:

  1. curl经典负载均衡器,响应是瞬间
  2. curlthings代理人,响应是瞬间
  3. curl私有负载均衡器,响应是瞬间
  4. curl安全代理,响应是瞬间
  5. curl公共负载均衡器,响应是慢啊……除非快速地

也许我需要重新配置我的代理?

代理配置

代理things配置如下:

events {
    worker_connections 1024;
}
http {
    server {
        location ^~ /proxycheck {
            return 200 'available';
            add_header Content-Type text/plain;
        }

        location / {
            proxy_pass ${PROXY_ADDRESS};
        }
    }
}

安全代理配置如下:

events {
    worker_connections 1024;
}
http {
    server {
        location ^~ /proxycheck {
            return 200 'available';
            add_header Content-Type text/plain;
        }

        location / {
            proxy_pass ${PROXY_ADDRESS};
            proxy_read_timeout 90;
            proxy_redirect default;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

将来,安全代理将检查证书。在此之前,我遇到了另一个问题。

有什么建议么?

答案1

看起来这一定是 AWS 的一个暂时性问题(与广为人知的胖手指事件有关),因为自从发布这个问题以来我一直无法复制它。

相关内容