LINUX.ORG.RU

Прокси сервер с кастомной обработкой запросов

 , , ,


0

2

На чем сегодня можно реализовать reverse-прокси с кастомной обработкой запросов?
Т.е. что бы принял запрос, распарсил, слазил в базу/кэш/и т.п., на основе обработки выполнил проксирование.
При этом надо что бы держал большое количество конектов.

★★

Последнее исправление: pru-mike (всего исправлений: 2)

Да вот вообще на чём угодно. Отталкивайся от своих предпочтений и инфраструктуры, на которой будет работать код. Ну или сообщай какие-то странные уникальные «хотелки», которые могли бы отсеять некоторые языки/фреймворки/технологии.

MimisGotAPlan
()

nginx. Если его функционала мало то можно использовать OpenResty, nginx со встроенным LUA

MrClon ★★★★★
()

Чет мне кажется, что твой прокси на самом деле и не прокси вовсе, потому что он половину запроса обработает. Возможно, X-Accel-Redirect тебе поможет.

anonymous
()
Ответ на: комментарий от pru-mike

А не надо переделывать бэкенд. X-Accel-Redirect, очень правильно подсказано. Запускается скрипт, парсит всё, что надо, потом отдаёт nginx'у, куда редиректнуть через прокси. Отделить мух от котлет (т.е. локейшн редиректа от собственно пространства имён приложения) можно реврайтом.

Вот здесь простенький пример: https://distinctplace.com/2013/09/18/use-nginx-to-proxy-files-from-remote-loc...

AlexAT
()
Ответ на: комментарий от AlexAT

Вобще похоже на то, посмотрю, спасибо.

pru-mike ★★
() автор топика
Ответ на: комментарий от MrClon

Функционала довольно много, уже есть реализация, но она не очень справляется с нагрузкой.

Переписывать всё на lua конечно не хотелось бы, но наверное можно заилить микросервис и лазить в него из OpenResty.

pru-mike ★★
() автор топика
Ответ на: комментарий от pru-mike

Тогда-уж можно реализовать всю логику в бекенде на $твой-любитый-яп (можешь назвать это микросервисом) и отдавать из него команды nginx-у что дальше с запросом делать.
Если запросов не какое-то безумное количество, а обработка каждого из них (та загадочная хитрая логика, которую ты хочешь вынести в микросервис) занимает не какой-то внушительное время то всё должно быть нормально. Ну а если оно объективно ресурсоёмко, то тут уж наверное ничего не сделать (кроме пересмотра архитектуры)

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Хитра логика - это в основном авторизация на основе структуры URL-а, кукисов и данных внешних источников + обогащение запроса дополнительной информацией.

отдавать из него команды nginx-у что дальше с запросом делать.

Я правильно понял, что это как раз реализуется через X-Accel-Redirect?

pru-mike ★★
() автор топика
25 августа 2017 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.