Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fcgi cache+ssi = subrequests cycle while processing
- To: nginx-ru@xxxxxxxxx
- Subject: fcgi cache+ssi = subrequests cycle while processing
- From: "kanin" <nginx-forum@xxxxxxxx>
- Date: Sat, 23 Feb 2013 22:20:03 -0500
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=rtjdkjpnROLtSdh/Ktgc41nZnOnPsn1UAvd8PuZGAHw=; b=nSP6Gufr5ytnyZgoUv3ZmPBXMWRNbO/GjZvI2nFBWXTWmPF+Fsv9UgAcdNZNbXhyCtiIZNK9JgFrvz9Np4I1O1AzyYP9aV5mBnFrrih3nu7OQ3DITM9YLumFvm0DWs1I;
Добрый день, ситуация следующая
хочу использовать 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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|