Оболочка модуля NGINX для внешнего программного обеспечения

Я изучаю возможность динамической настройки поведения наших балансировщиков нагрузки NGINX для каждого запроса. В основном я хочу делать такие вещи, как фильтрация плохих запросов, динамическое определение вышестоящего сервера на основе некоторого пользовательского внешнего кода и выполнение некоторой пользовательской статистики/регистрации.

Я полагаю, что единственный способ сделать это — использовать модуль, но у меня нет опыта написания кода на C/C++, и многие коды для принятия решений, которые я хочу запустить, частично уже существуют в других системах (в частности, в коде на C#).

Существует ли модуль NGINX (предпочтительно бесплатный), который может переносить решения на основе запросов во внешнее программное обеспечение через TCP, конвейер или что-то подобное?

Самое близкое, что я нашел, это ngx_http_auth_request_module который может сделать подзапрос HTTP, но его можно использовать только для определения статуса аутентификации в виде да/нет, а не для выбора вышестоящего сервера и т. д.

балансировка нагрузки nginx

1 ответ
1

Я нашел решение с помощью модуля сценария LUA и создал сценарий для вызова нашего собственного HTTP API для принятия решений.

ДВА модуля:
https://github.com/openresty/lua-nginx-модуль

Сообщение Stackoverflow, которое я использовал для вдохновения:
https://stackoverflow.com/questions/48348647/fetch-information-from-an-api-before-sending-the-request-upstream

Хенрик

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *