Проблема задержки с Elastic Beanstalk, Nginx-lua, микро-приложениями - PullRequest
0 голосов
/ 15 мая 2018

У меня проблема с задержкой при использовании набора микро-приложений на 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, когда он получает немного трафика против трафика)

1 Ответ

0 голосов
/ 21 мая 2018

Таким образом, проблема в конечном итоге стала проблемой, которую мы могли бы исправить, обновив наши средства распознавания.

В блоке местоположения мы указали средства разрешения для службы DNS amazons, в то время как другие преобразователи остались такими же, чтобы работать для некоторыхвнутренний прокси-сервер.

Теперь это дает нам ожидаемую скорость.

...