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

时间:2018-05-15 17:59:36

标签: amazon-web-services nginx elastic-beanstalk openresty

在负载均衡器上使用EB上的一组微应用程序时,我遇到了延迟问题。这个问题特别针对一个nginx驱动的应用试图在ELB上击中另一个应用程序。如果我们使用postman快速访问API,那么通过nginx-lua发布到端点的速度相当慢。

出于安全考虑,我的请求被nginx-lua(openresty)代理 - 以及在nginx中完成重写。 Ex(更改路径和变量名称)

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

似乎对特定api(我们有几个)的前几个请求似乎都有很多延迟,然后会对后续请求进行简要说明。

这些开发实例不会获得大量流量。当我们将由lua设置的proxy_pass变量更改为EC2实例的直接IP时,它的速度提高了近4-10倍(300ms与1-5s一致)。

我认为它与nginx在开始时缓存IP以及ELB在获得一点点流量而没有流量时改变IP有关)

1 个答案:

答案 0 :(得分:0)

因此,问题最终成为我们可以通过更新我们的解析器来解决的问题。

在位置块中,我们为amazons DNS服务指定了解析器,而我们将其他解析器保持相同以适用于某些内部代理服务器。

现在这给了我们预期的速度。