Как разрешить IP-адреса AWS ELB в Openresty для каждого апстрима - PullRequest
0 голосов
/ 28 мая 2018

Проблема, с которой мы сталкиваемся, заключается в том, что openresty nginx разрешает только IP-адреса AWS ELB при запуске, а затем кэширует IP-адрес вечно (до тех пор, пока он не перезагрузится).Поскольку IP-адрес балансировщика нагрузки AWS может измениться в любое время, я ищу решение, которое может разрешать IP-адреса ELB при каждом использовании в восходящем направлении.Ищете что-то похожее на опцию «разрешения» в апстриме в nginx +, но в Openresty.Или каким-то другим способом аннулировать вышестоящий DNS-кеш

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Как насчет использования DNS-сервера в качестве resolver и переменной для значения proxy_pass?

Посмотрите на приведенный ниже пример из этого поста "Nginxс динамическими восходящими потоками " Джеппа Фила-Пирсона

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

Существует модуль балансировки , который вы можете использовать из директивы balancer_by_lua_block.Вы сможете установить любой восходящий IP-адрес.

Этот контекст выполнения кода Lua не поддерживает выдачу, поэтому API-интерфейсы Lua, которые могут выдавать (например, косокеты и "легкие потоки"), отключены в этом контексте.Обычно можно обойти это ограничение, выполняя такие операции в обработчике более ранней фазы (например, access_by_lua *) и передавая результат в этот контекст через таблицу ngx.ctx.

Вы можете использовать lua-resty-dns и разрешите ваш ELB IP для каждого запроса (является ли он ?!) в access_by_lua_*, сохраните полученные IP-адреса в ngx.ctx и используйте их в balancer_by_lua_block.

...