Welcome! Log In Create A New Profile

Advanced

Re: Стабильным релизом будет версия 1.0

Валентин Бартенев
September 30, 2010 04:14PM
Почитайте TODO, что я вложил в архив. Опубликую его здесь, наверное надо было
сразу это сделать в первом сообщении:

* Возможность установки в nginx.conf корневой папки для шаблонов.
* Инициализация виртуальной машины на старте. Сейчас это происходит каждый
запрос, что слегка негативно сказывается на производительности.
* Возможность указывать пути к шаблонам в nginx.conf и кэшировать их в
памяти.
* Небольшие проверки байт-кода перед запуском виртуальной машины. Сейчас один
из рабочих процессов nginx умирает, если случайно подсунуть ему вместо
откомпилированного шаблона что-то другое.
* Написать нормальный VM logger класс. В настоящий момент это просто
заглушка.

Так что, все что вы перечислили запланировано и появится в ближайших версиях.
Просто мне хотелось подогреть интерес, тем более, что и 0.1 уже вполне
юзабельна, хотя и далеко не очень удобно все.

Я планирую сделать так. Для шаблонов четко прописанных в nginx.conf в каком-
либо месте template: путь/до/шаблона, можно установить флаг cache и тогда эти
шаблоны будут загружены в разделяемую память еще на этапе запуска сервера и
хранится там в быстрой хэш-таблице.

Опцию template_root я хотел тоже ввести, но несколько с другой целью, то что
вы описали во втором пункте будет делать опция template, а template_root будет
указывать корневую папку для путей до шаблонов, которые заданы относительно.
Например если запрос придет X-Template: users/list.ct2
и root_template: /srv/www/somesite/templates, то подгружен будет:
/srv/www/somesite/templates/users/list.ct2

Таким же образом template_root будет влиять и на пути заданные в директиве
template: если они указаны относительно (не начинаются с /).

Возможно когда-нибудь позднее появится и просто общий разделяемый адаптивный
кэш, для которого будет задаваться размер, и в который будут автоматически
попадать часто запрашиваемые шаблоны. Для этого я наверное воспользуюсь
алгоритмами red-black деревьев, что реализованы в nginx.

Но уже сейчас надо отметить, я тестировал, все работает ооочень шустро, я
цеплял cherrypy через proxypass и django через uwsgi, и сравнивал просто
отдачу статической html прописанной прямо в питон коде, с отдачей json
прописанной в нем же. Шаблон был не простой, взял бенчмарк, что прилагался к
ctpp... Так вот, req/sec были сопоставимы, разница в пределах 5-10% и это
статика vs. шаблонизация, среднее время ответа было в менее 2мс на моей
машинке, и это с учетом влияния бэкенда.

--
Валентин Бартенев

> О! Моя мечта! Как ни странно, я как раз собирался нечто подобное сделать.
>
> Я не знал, что ctpp 2.x может брать байткод из отдельного файла. Это
> несколько меняет ситуацию. Во всяком случае есть несколько вопросов:
>
> 1) Нет ли желания хранить шаблон в разделяемой памяти или хотя бы делать
> mmap на файл с шаблоном? Иначе потребление памяти возрастает на (Длина
> шаблона x Число одновременных запросов к шаблону) + Накладные расходы
>
> 2) Нельзя сделать так, чтобы путь к шаблону определялся по uri если нет
> заголовка X-Template? Например так:
>
> location /foo {
> template_root /var/www/site.ru/template;
>
> [...]
>
> }
>
> Ответ на запрос /foo/bar использует шаблон /var/www/site.ru/template/bar
>
> Валентин Бартенев пишет:
> > Я думаю, что с этим пока лучше чуть повременить, сперва надо получить
> > первые хорошие отзывы, и позаботится обо всех критических вещах из TODO.
> >
> > Версия слишком сырая.
> >
> > По крайней мере необходима возможность установки корневой папки для
> > шаблонов в настройках nginx (но это очень просто), перенести
> > инициализацию VM в другое место на стадию конфигурации и добавить
> > проверку байт-кода, чтобы он не падал, когда ему некорректный шаблон
> > подсовываешь.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Шаблонизатор встроенный в nginx

Валентин Бартенев September 30, 2010 01:12PM

Re: Шаблонизатор встроенный в nginx

Bdfy September 30, 2010 01:58PM

Стабильным релизом будет версия 1.0

Валентин Бартенев September 30, 2010 02:22PM

Re: Стабильным релизом будет версия 1.0

Valery Kholodkov September 30, 2010 03:20PM

Re: Стабильным релизом будет версия 1.0

Валентин Бартенев September 30, 2010 04:14PM

Re: Стабильным релизом будет версия 1.0

Artemciy October 13, 2010 04:38PM

Re: Стабильным релизом будет версия 1.0

Mons Anderson October 14, 2010 02:24PM

Re: Стабильным релизом будет версия 1.0

Валентин Бартенев October 15, 2010 12:50PM

Re: Стабильным релизом будет версия 1.0

Валентин Бартенев October 15, 2010 01:58PM

Re: Стабильным релизом будет версия 1.0

Artemciy October 16, 2010 07:14AM

Re: Стабильным релизом будет версия 1.0

Валентин Бартенев October 16, 2010 08:24AM

Re: Стабильным релизом будет версия 1.0

Artemciy October 16, 2010 08:53AM

Эххх, чуть поторопился. Рабочая ссылка на файл в этом сообщении.

Валентин Бартенев September 30, 2010 02:00PM

Re: Шаблонизатор встроенный в nginx

Михаил Монашёв September 30, 2010 04:20PM

Тесты это хорошо

Валентин Бартенев September 30, 2010 04:36PM

Re: Тесты это хорошо

Kirill A. Korinskiy September 30, 2010 04:42PM

Ой, как здорово!

Валентин Бартенев September 30, 2010 04:56PM

Re: Ой, как здорово!

Евгений Девятых September 30, 2010 11:56PM

Re: Провокация

jackal October 01, 2010 02:52AM

Re: Провокация

Boris Dolgov October 01, 2010 03:22AM

Re[2]: Провокация

Евгений Девятых October 01, 2010 03:26AM

Re: Re[2]: Провокация

Kirill A. Korinskiy October 01, 2010 03:34AM

Re: Провокация

Dmitry Dedukhin October 01, 2010 03:42AM

Re: Провокация

Kirill A. Korinskiy October 01, 2010 03:48AM

Re: Провокация

Kirill A. Korinskiy October 01, 2010 03:28AM

Re[2]:

Andrey Repin October 01, 2010 06:32AM

Re: Провокация

jackal October 01, 2010 08:10AM

Re: Провокация

Anton Bessonov October 01, 2010 01:24PM

Re[2]:

Andrey Repin October 01, 2010 05:52PM

Re: Провокация

Anton Bessonov October 01, 2010 06:12PM

Re: Re[2]: Провокация

Vladimir Getmanshchuk October 01, 2010 06:48PM

Re: Re[2]: Провокация

Sergey Averyanov October 01, 2010 11:04PM

Re[4]: Провокация

Влад Максимов October 02, 2010 03:02AM

Re[4]:

Andrey Repin October 02, 2010 01:42PM

Re: Ой, как здорово!

Валентин Бартенев October 01, 2010 05:40AM

Re: Тесты это хорошо

Михаил Монашёв September 30, 2010 04:46PM

Re: Шаблонизатор встроенный в nginx

Илья Винокуров October 01, 2010 07:40AM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 01, 2010 08:06AM

Re: Шаблонизатор встроенный в nginx

Anton Bessonov October 16, 2010 10:42AM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 17, 2010 10:10AM

Re: Шаблонизатор встроенный в nginx

Anton Bessonov October 17, 2010 10:22AM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 17, 2010 12:26PM

Re[2]: nginx

Andrey Repin October 17, 2010 06:12PM

Re: Шаблонизатор встроенный в nginx

Artemciy October 18, 2010 06:55AM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 18, 2010 07:34AM

Re: Шаблонизатор встроенный в nginx

Алексей Сундуков October 18, 2010 12:18PM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 18, 2010 02:16PM

Re: Шаблонизатор встроенный в nginx

Handie October 29, 2010 06:20AM

Re: Шаблонизатор встроенный в nginx

Andrey Velikoredchanin October 29, 2010 06:56AM

Re: Шаблонизатор встроенный в nginx

Валентин Бартенев October 31, 2010 08:56PM

Re: Шаблонизатор встроенный в nginx

Алексей Сундуков April 22, 2011 10:32AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 299
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready