fcgi cache+ssi = subrequests cycle while processing

kanin nginx-forum at nginx.us
Sun Feb 24 03:20:03 UTC 2013


Добрый день, ситуация следующая

хочу использовать SSI для подключения мелких файлов без кэша с
X-Accel-Expires 0 
и ловлю такую ошибку:

2013/02/23 21:15:26 [error] 14107#0: *1 subrequests cycle while processing
"/ssi/ssi_1.php", client: 192.168.128.1, server: deb_ww, request: "GET /
HTTP/1.1", subrequest: "/ssi/ssi_1.php",
host: "deb_ww"

при обращении к корню сервера индекс файл начинает сам себя инклудить много
раз.
вот примерный конфиг:

server {
    listen	80;
	server_name deb_ww;
    root /var/www/deb_ww/public_html;
	location = / {
		index init.php;
		#rewrite /				/init.php			last;
	}
	location ~ \.php$ {
		ssi on;
		charset			utf-8;
		fastcgi_pass	unix:/var/run/php5-fpm.sock;
		include			fastcgi_params;
		fastcgi_param	SCRIPT_FILENAME		$document_root$fastcgi_script_name;
		fastcgi_intercept_errors			on;
		internal;
		fastcgi_cache zone;
		#fastcgi_cache_use_stale error timeout invalid_header;
		fastcgi_cache_use_stale off;
		fastcgi_cache_methods GET HEAD;
		fastcgi_pass_header "X-Accel-Expires";
		fastcgi_cache_key	"$request_method|$host|$http_if_modified_since|$http_if_none_match";
		fastcgi_ignore_headers "Cache-Control" "Expires";
	}
}

ошибка возникает только при включённом кэшировании, и только при указанном
index для "=/"

location = / {
	index init.php;
	#rewrite /				/init.php			last;
}

т.е. если вот здесь заменить index на rewrite, то всё отработает нормально.

далее..

в подключаемом SSI (он один) - пусто, т.е пустой файл, обычно там:

<?php header("X-Accel-Expires: 0", true);echo "helloworld"; ?>

но на пустом тоже ломается (fcgi cache чищу и т.п).

в init.php, если он полный, то браузер долго грузит и подвисает,
но вот такой код:

<?php
echo '<!--# include virtual="/ssi/ssi_1.php" -->';
echo 'z';
die;
?>

отрабатывает вот так:

[an error occurred while processing the directive]zzzzzzzzzzzz всего 201 раз
буква z zzzzzzzzzzzzzz

я бы и закончил на замене index на rewrite для "=/", но хочется понять в чём
дело, вдруг это снова где-нибудь всплывёт

debian 2.6.32-5
nginx/1.2.7

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,236529,236529#msg-236529



Подробная информация о списке рассылки nginx-ru