Шаблоны+скрипты обратного прокси?

Обдумывая идею, хотел получить отзывы/предложения:

Имея большой успех с переписыванием URL-адресов и nginx, я теперь думаю о более способном обратном прокси-сервере/маршрутизаторе, который будет делать следующее:

  • Сопоставление запросов обработчикам на основе сопоставления регулярных выражений (аля Django)
  • Некоторые запросы будут просто перенаправляться на внутренние серверы, например. статические носители, memcached и т. д.
  • Другие запросы будут отображать шаблоны, которые извлекают данные с нескольких внутренних серверов.

Например, шаблон может состоять из:

<body>
  <div>{% remote http://someserver/somepage %}</div>
  <div>{% remote http://otherserver/otherpage %}</div>
</body>

Обратный прокси-сервер будет делать http-запросы к someserver/somepage и otherserver/otherpage и извлекать результаты в шаблон.

Вопросы:

  • Имеет ли идея смысл или это плохая идея?
  • Существует ли существующий пакет, который реализует что-то подобное?
  • Как насчет существующего сервера + сценариев для реализации этого - например. lighttpd+lua, nginx+??
  • Как насчет nginx+SSI? Выглядит довольно способно, если у вас есть опыт/рекомендации, пожалуйста, прокомментируйте.
  • Как насчет чего-то вроде языка сценариев+eventlet ?
  • Скрученный?

Я предпочитаю Python для сценариев и шаблоны в стиле jinja/django, но я открыт для альтернатив.


person Parand    schedule 29.07.2009    source источник


Ответы (2)


Это уже существующее приложение называется Deliverance: http://deliverance.openplans.org/

person gawel    schedule 25.08.2009

Таким образом, вместо того, чтобы выполнять вызов AJAXy в iframe или что-то в этом роде, вы делаете это на стороне сервера.

Я думаю, что я бы сделал это только в том случае, если бы внешний сайт был полностью под моим контролем, исключительно из соображений безопасности. Это также сильно ударит по времени отклика.

Я полностью упускаю суть, или это будет довольно просто сделать с некоторыми функциями и urllib?

person dochead    schedule 30.07.2009
comment
Правильно, соберите его на стороне сервера вместо использования iframes/ajax. Его довольно просто построить (у меня есть хорошо работающий прототип), но я ищу производственный уровень, высокопроизводительную реализацию. Относительно времени отклика: не обязательно. Обратные прокси-серверы иногда даже улучшают производительность, обрабатывая медленные клиентские соединения и позволяя серверной части выполнять реальную работу. - person Parand; 30.07.2009