Я реализую плагин kong, который должен делать HTTP-запросы для получения информации, чтобы поделиться ею с вышестоящими службами.
Существует отличная библиотека под названием https://github.com/pintsized/lua-resty-http, которую можно использовать для создания HTTP Запросы.
Служба, которая содержит необходимую информацию, настроена за прокси-сервером и соответствует пути: /endpoint-providing-info.
Цель состоит в том, чтобы полагаться на возможности прокси-сервера, чтобы избежать необходимости анализировать имя хоста, имеющее определенную форму, не имеющую отношения к этому вопросу.
Поигравшись, я смог добиться желаемого поведения, выполнив следующие действия:
local ok, err = http_client:connect("127.0.0.1", ngx.var.server_port)
if not ok and err then return nil, 'there was a failure opening a connection: ' .. err
local res, err = http_client:request({
method = 'GET',
path = '/endpoint-providing-info'
})
//parse the response, etc...
Запрос направляется в вышестоящую службу и работает должным образом.
Меня больше всего беспокоит следующее:
Подключившись к localhost, я предположил, что текущий узел Nginx обслуживает запрос. Повлияет ли это на производительность? Лучше / возможно ли подключиться к кластеру напрямую?