SSI и мемкеш
Aleksandr Sytar
sytar.alex на gmail.com
Вс Июн 13 13:58:19 MSD 2010
Или я чего-то не понимаю или nginx не отрабатывает error_page при SSI-include
server {
listen 80;
server_name name;
charset utf-8;
access_log /var/log/nginx/test.access.log combined;
access_log /var/log/nginx/upstream.test.access.log upstream;
root /var/www/www;
ssi on;
gzip off;
log_subrequest on;
set $memcached_key "$uri";
location / {
default_type text/html;
memcached_pass memcached;
error_page 404 502 504 = @php;
}
# Это ssi-include
location /catalog/get_subcategory_product {
default_type text/html;
memcached_pass memcached;
error_page 404 502 504 = @php;
}
location @php {
fastcgi_pass backend;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param PATH_INFO $uri;
fastcgi_param REQUEST_URI $uri;
}
}
Результат - при инклюде nginx смотрит в мемкеш, ничего там не находит
и возвращает 404 игнорирую error_page
Пробовал try_files (смотреть в мемкеш через именованный локейшн -
try_files @memcached @php) - nginx всегда берёт данные из @php:
server {
listen 80;
server_name name;
charset utf-8;
access_log /var/log/nginx/test.access.log combined;
access_log /var/log/nginx/upstream.test.access.log upstream;
root /var/www/www;
ssi on;
gzip off;
log_subrequest on;
set $memcached_key "$uri";
location / {
try_files @memcached @php;
}
location @memcached {
default_type text/html;
memcached_pass memcached;
error_page 404 502 504 = @php;
}
#ssi-include берётся по правилам /
location @php {
fastcgi_pass backend;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param PATH_INFO $uri;
fastcgi_param REQUEST_URI $uri;
}
}
Как быть?
--
Have a nice day
Подробная информация о списке рассылки nginx-ru