当我在EB上用负载均衡器使用一组微型应用时,我遇到了延迟问题。这个问题特别是一个nginx驱动的应用程序试图在ELB上点击另一个应用程序。如果我们使用postman访问API,它是快速的,但是通过nginx发送到端点的速度相对来说非常慢。
我的请求是由nginx (openresty)为安全目的编写的proxy_passed,以及在nginx中完成的重写。Ex (更改路径和变量名)
location /api
{
proxy_set_header Authorization $token;
rewrite /api/(.*) /ipa/$1 break;
proxy_pass $elb_api_cname;
}似乎对特定api的前几个请求(我们有几个请求)似乎都有很大的延迟,然后对于随后的请求,这些延迟就会短暂地下降。
这些dev实例没有多少通信量。当我们将lua设置的proxy_pass变量更改为EC2实例的直接IP时,它几乎快了4-10倍(300 vs与1-5s一致)。
我相信这与nginx在启动时缓存IP和ELB在获得少量流量与无流量时更改IP有关)
发布于 2018-05-21 15:54:01
因此,这个问题最终是一个问题,我们可以通过更新我们的解决方案来解决。
在location块中,我们为amazons DNS服务指定了解析器,而其他解析器则是相同的,以处理一些内部代理内容。
这给了我们预期的速度。
https://stackoverflow.com/questions/50356587
复制相似问题