Elastic Beanstalk、Nginx-lua、微应用程序的延迟问题

Latency issue with Elastic Beanstalk, Nginx-lua, micro-apps

我 运行 在 EB 上使用负载均衡器上的一组微应用程序时遇到延迟问题。这个问题专门针对一个 nginx 驱动的应用程序试图攻击 ELB 上的另一个应用程序。如果我们使用邮递员点击 API 它很快,但是通过 nginx-lua 发送到端点相对来说非常慢。

为了安全起见,我的请求 proxy_passed 由 nginx-lua (openresty) 处理,同时在 nginx 中进行了重写。 Ex(更改路径和变量名)

location /api
{
     proxy_set_header    Authorization   $token;
     rewrite             /api/(.*) /ipa/ break;
     proxy_pass  $elb_api_cname;
}

似乎对特定 api(我们有几个)的前几个请求似乎都有很多延迟,随后请求会短暂下降。

这些开发实例的流量不多。当我们将 lua 设置的 proxy_pass 变量更改为 EC2 实例的直接 IP 时,它几乎快了 4-10 倍(300 毫秒与 1-5 秒一致)。

我相信这与 nginx 在启动时缓存 IP 以及 ELB 在获得少量流量时更改 IP 有关)

所以这个问题最终成为我们可以通过更新解析器来解决的问题。

在位置块中,我们指定了亚马逊 DNS 服务的解析器,而我们让其他解析器保持不变以用于某些内部代理。

这给了我们预期的速度。