Ошибка в ssi директиве echo (nginx/0.7.61)

Maxim Dounin mdounin at mdounin.ru
Thu Jul 16 08:07:30 MSD 2009


Hello!

On Thu, Jul 16, 2009 at 09:08:16AM +0600, Руслан Шарипов wrote:

> Утро доброе.
> 
> Есть файл:
> 
> [root at alpha /hd1/users/i5039/www/ssi]# cat index.shtml
> <!--#include virtual="/ssi/config.shtml" -->
> <!--#echo var="testvar" -->
> 
> и файл
> 
> [root at alpha /hd1/users/i5039/www/ssi]# cat config.shtml
> test ssi begin
> <!--#set var="testvar" value="true" -->
> test ssi end
> 
> при запросе http://domainname/ssi/index.shtml
> 
> получаем ответ:
> test ssi begin test ssi end (none)
> 
> как видим ssi директива include отработала успешно (текст test ssi
> begin и test ssi end "заинклюдился"), а вот переменная testvar
> почему-то не проинициализировалась (echo вернул none), данная проблема
> возникла после обновления с линейки 0.6 (конкретно после какой версии
> не помню)

Include'ы в ssi nginx'ом обрабатываются параллельно.  Если вы 
хотите контроллировать последовательность их выполнения - 
используйте параметр wait.  Подробности тут:

http://sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html

В 0.7.25 была изменена обработка подзапросов.  Ранее 
существовавший код фактически приводил к неявному wait для 
статических файлов, и поэтому приведённый ssi работал как 
ожидается.  Теперь не приводит, wait надо указывать явно.

Maxim Dounin





More information about the nginx-ru mailing list