在负载均衡器上使用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有关)
答案 0 :(得分:0)
因此,问题最终成为我们可以通过更新我们的解析器来解决的问题。
在位置块中,我们为amazons DNS服务指定了解析器,而我们将其他解析器保持相同以适用于某些内部代理服务器。
现在这给了我们预期的速度。