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@xxxxxxx
Web: http://www.lexa.ru/lexa