Альтернатива nginx (веб-сервер + прокси) с использованием сценариев Python или JavaScript - PullRequest
0 голосов
/ 25 марта 2019

У нас есть приложение JavaScript / React, которое мы используем, используя nginx (openresty) в качестве веб-сервера и прокси.В настоящее время он выполняет следующие функции:

  1. Обслуживает некоторые статические локальные файлы, которые составляют приложение React (в образе Docker) - по сути, это просто index.html и минимизированные файлы .js клиента и файлы .css.
  2. Прокси-запросы с определенными префиксами пути отключаются для некоторых внешних сервисов, таких как CMS и CDN.
  3. В обоих случаях 1 и 2 сначала проверяется необходимая авторизация в JWT.Если запрос не прошел проверку подлинности, проблемы перенаправляются на микросервис с единым входом (с соответствующими URL-адресами после проверки подлинности обратно на исходный URL-адрес);если он не авторизован, перенаправляет на тот же адрес с соответствующим обменом сообщениями и возможностью переключения учетных данных.

Использование nginx и, следовательно, Lua, оказалось серьезным ограничивающим фактором.Мы хотели бы сделать несколько более сложных вещей, чем мы в настоящее время можем сделать с nginx, таких как использование подстановочных знаков в наших разрешениях JWT, но Lua просто не справляется с этой задачей.Его сложно разрабатывать, расширять, понимать и отлаживать.

Существует ли какой-либо альтернативный веб-сервер + прокси-сервер, использующий Python или JavaScript в качестве языка сценариев, или рекомендация о том, как наилучшим образом использовать одну из популярных платформ Python или JavaScript для достижения той же цели?Я начал строить что-то с нуля в Python, используя responseder и aiohttp.Я сделал работу прокси довольно быстро, но потом обнаружил, что переопределяю все внутренности SimpleHTTPRequestHandler, и это для меня красный флаг.

Обратите внимание, мы знаем о https://www.nginx.com/blog/introduction-nginscript/, но он не делает то, что нам нужно.

...