У меня проблема с задержкой при использовании набора микро-приложений на EB с балансировщиком нагрузки. Эта проблема, в частности, связана с тем, что одно приложение с поддержкой nginx пытается запустить другое приложение на ELB. Если мы обращаемся к API с помощью почтальона, это быстро, но отправка в конечную точку через nginx-lua сравнительно медленная относительно.
Мои запросы proxy_passed от nginx-lua (openresty) в целях безопасности вместе с перезаписью, выполняемой в nginx. Ex (измененные пути и имена переменных)
location /api
{
proxy_set_header Authorization $token;
rewrite /api/(.*) /ipa/$1 break;
proxy_pass $elb_api_cname;
}
Кажется, что первые несколько запросов к конкретному API (у нас их несколько), похоже, имеют большую задержку, которая затем кратко снижается для последующих запросов.
Эти экземпляры dev не получают много трафика. Когда мы меняем переменную proxy_pass, установленную lua, на прямой IP-адрес экземпляра EC2, это почти в 4-10 раз быстрее (согласование 300 мс против 1-5 с).
Я полагаю, что это как-то связано с кэшированием IP-адреса при запуске nginx и изменением IP-адреса ELB, когда он получает немного трафика против трафика)