Шаблоны

Alex Tutubalin lexa at lexa.ru
Tue Jan 24 09:49:51 MSK 2006


On Sat, Jan 21, 2006 at 11:16:30PM +0300, Михаил Монашёв wrote:
> Игорь, планируешь ли ты вставку какого-нить шаблонного движка в nginx.
> Если, да, то какого?

Я вот прочитал всю ветку, долго думал, решил высказаться
(везде ниже по тексту "должен" означает - "если бы я этим занимался,
то копал бы в данную сторону")

1) Для чего нужен nginx. Если коротко, то для двух вещей:
   a. C10k
   b. Чтобы не держать толстый сервер приложений (апач, обычно)
    когда ответ уже сформирован, а клиент его уже не забрал
   c. Было бы полезно еще и быстро кэшировать, однако пока опаньки.

2) Представим, что у нас есть быстрый и компактный по памяти темплейтный
 движок. Он, значит, откуда-то получает данные и темплейт, склеивает
 одно с другим и выдает пользователю.
 Вопрос - почему бы ЭТОМУ не быть на сервере приложений (который достает
 данные откуда-то, в реальности - из базы данных) - раз движок быстрый
 и компактный, то он там не помешает.
 Если template engine - не быстрое и не компактное, то тем более на
 фронтенде ему не место.

3) В каком случае вычисление темплейта может быть отнесено на сторону
nginx ? А в единственном - когда оно производится только и исключительно
на основании данных, полученных в запросе. Подпереть это - да, было бы
полезно. В данные, очевидно, входят и куки и аргументы GET и
(неплохо бы) данные, переданные в POST.

4) Что было бы не менее полезно ? А полноценная поддержка кэширования,
 напримет через memcached (раз уж делается быстрый сервер). Оная
 поддержка должна быть с такими свойствами
  а) ключ к кэшу - можно вычислять на основании клиентских данных
  б) при обработке SSI - каждый кусок который #include virtual
  может быть кэширован отдельно
  в) если в кэше чего-то не нашлось, то фронтенд должен уметь сходить
  на backend, получить ответ (кусок ответа для SSI), и положить его
  в кэш с нужным временем жизни
  г) для большинства приложений, в качестве кэша хватит memcached и tugela
  без  файлового кэша в духе mod_accel можно и пережить


Алексей Тутубалин
mailto: lexa at lexa.ru
Web: http://www.lexa.ru/lexa 





More information about the nginx-ru mailing list