Welcome! Log In Create A New Profile

Advanced

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

Валентин Бартенев
September 30, 2010 01:12PM
Приветствую.

Я написал модуль для nginx. Суть его в том, что я встроил в сервер виртуальную
машину шаблонизатора CT++ http://ctpp.havoc.ru/whatis.html

Работает он очень просто. Вы посылаете данные в формате JSON, а и
устанавливаете еще один http заголовок:
X-Template: путь/к/скомпилированному/cttp/шаблону

На выходе получаем готовенький HTML! Поскольку CT++ написан на С++ и перед
использованием шаблоны необходимо компилировать в особый байт-код, который
понимает его виртуальная машина все это происходит максимально быстро. Не
сильно ошибусь если скажу, что это один из быстрейших шаблонизаторов на
планете, если не самый быстрый. Генерация большинства шаблонов занимает
микросекунды (именно, микро, не милли).

Но какие же мы еще получаем плюшки, помимо экстремальной производительности
шаблонизации?

1) JSON компактнее чем результирующий HTML -> меньше данных пересылается между
сервером и бэкэндом.
2) Вы можете использовать тот же самый json, что вы отдаете на ajax запросы,
упрощается логика приложения. AJAX запрос отдаем JSON без X-Template
заголовка, обычный запрос - отдаем тот же самый JSON но с X-Template
заголовком.
3) Вы можете вообще proxy-pass ваш nginx в CouchDB которая и так отдает данные
в json. В этом случае вам ВООБЩЕ не нужно писать северную часть для многих
задач.
4) Можете вообще больше не заморачиваться с выбором шаблонизатора, выбор
очевиден. Решение универсально, пишите ли вы на python, ruby, perl, erlang или
на худой конец на php.

Вот такие плюшки. И это еще не все, будет больше... =)

Скачать:
https://dev.vbart.ru/attachments/download/10/ngx_ctpp2-0.1.tar.gz

или из SVN: svn co svn://vbart.ru/ngx_ctpp2/tags/0.1

Учтите, что это первая публичная бета. Перед сборкой необходимо сперва
установить СT++ 2.6.5:
http://ctpp.havoc.ru/install.html
http://ctpp.havoc.ru/download/

Проверял на nginx 0.8.52

Жду отзывов и пожеланий. Нормальная документация, презентации и замеры
производительности будут, но позже.


Также хочу выразить огромную благодарность Игорю Сысоеву за такой
замечательный веб-сервер. Ровно неделю назад я первый раз заглянул в его
исходники. Я могу с уверенность утверждать, что за эту неделю я стал чуть
умнее.

Спасибо Валерию Холодкову, который подсказал мне в этой рассылке отличную
реализацию чтения файла в nginx.

--
Валентин Бартенев
_______________________________________________
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: 300
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