ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re[2]: nginx-0.7.59



ИМХО,

По моим наблюдениям тенденции развития сайтостроения свидетельствуют о том, что статичные сайты становятся всё менее и менее интересны. Статичный сайт в моём понимании - это сайт, большинство страниц которого можно полностью закэшировать, соответственно обновляя страницу пользователь постоянно видит одну и ту же страницу, взятую из кэша, без каких либо изменений, что, согласитесь, скучно.. Большинство современных сайтов (опять же по моим наблюдениям) - это динамичные сайты, т.е. на таком сайте показывается, авторизован пользователь или нет, есть некая ротация блоков или контента внутри блоков и т.п. Я думаю, что SSI в nginx с возможностью подзапросов идеально подходит на роль "шаблонизатора второго уровня", т.е. может производить определенные (не большие, но всё же вполне достаточные) действия для придания закэшированной странице некоторой динамики. А для того, чтобы быть "шаблонизатором второго уровня" по моему мнению достаточно нескольких простейших функций:
1. Выполнение подзапросов к бэкенду
2. Простейший анализ результатов запроса
 - проверка переменных (с помощью операций =, !=, >, <, >= и <=)
 - вложенные условия
 - циклы (опционально)

Про вложенные условия хочу пояснить на примере, который достаточно часто встречается в реальной жизни:

<!--# include virtual="/get_user_info" wait="yes" -->
<!--# if expr="$User_is_auth = 1" -->
   ...auth user part1 of html code...
   <!--# if expr="$User_is_moder = 1" -->
       ...moder part of html code...
   <!--# endif -->
   ...auth user part2 of html code...
<!--# else -->
   ...not auth user part of html code...
<!--# endif -->

Без вложенного условия пришлось бы переписывать так:

<!--# include virtual="/get_user_info" wait="yes" -->
<!--# if expr="$User_is_auth = 1" -->
   <!--# set var="User_auth_and_moder" value="1" -->
<!--# else -->
   <!--# set var="User_auth_and_moder" value="0" -->
<!--# endif -->
<!--# if expr="$User_is_moder = 1" -->
   <!--# set var="User_auth_and_moder" value="${User_auth_and_moder}1" -->
<!--# else -->
   <!--# set var="User_auth_and_moder" value="${User_auth_and_moder}0" -->
<!--# endif -->

<!--# if expr="$User_auth_and_moder = 11" -->
   ...auth user part1 of html code...
   ...moder part of html code...
   ...auth user part2 of html code...
<!--# elif expr="$User_auth_and_moder = 10" -->
   ...auth user part1 of html code...
   ...auth user part2 of html code...
<!--# else -->
   ...not auth user part of html code...
<!--# endif -->

что заметно ухудшает наглядность и читаемость кода, и, что самое главное, ухудшает поддерживаемость кода из-за дублирования частей

Без кэширования, если все операции производить апачем - нужна ферма серверов.

----- Original Message ----- From: "Kirill A. Korinskiy" <catap+nginx@xxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
Sent: Tuesday, May 26, 2009 1:49 PM
Subject: Re: Re[2]: nginx-0.7.59


ИМХО, вы путаете nginx и что-то более сложное, например apache.

--
wbr, Kirill





 




Copyright © Lexa Software, 1996-2009.