Не работают Memcached вместе с SSI

Anton anton200 at gmail.com
Sat Oct 20 10:46:03 MSD 2007


Hi

Скрипт x.php, вывод которого содержит SSI-вставку <!--# include
virtual="/y.php" -->.
Оба скрипта кладут себя в Memcached.

При заходе на x.php ответ ищется в кэше, ессно не находится, идет
запрос на бакэнд
"GET /x.php HTTP/1.0" (правильно срабатывает /fallback), скрипт выдаёт
содержимое, попутно сохраняя себя в Memcached:
<5 new client connection
<5 get /x.php?
>5 END
<5 connection closed.
<5 new client connection
<5 version
>5 VERSION 1.1.12
<5 set /x.php? 0 9000 40
>5 STORED
<5 connection closed.

В содержимом присутствует SSI, и nginx опять ищет его в Memcached
<5 new client connection
<5 get /y.php
>5 END
<5 connection closed.
не находит и... спрашивает "GET /fallback HTTP/1.0" у бакэнда.
Хотя должен был по идее спросить "GET /y.php HTTP/1.0"

Лог nginx:
X.X.X.X - [20/Oct/2007:12:28:56 +0600] GET /x.php HTTP/1.1 "200" 195

Лог бакэнда:
127.0.0.1 - - [20/Oct/2007:12:28:56 +0600] "GET /x.php HTTP/1.0" 200 40
127.0.0.1 - - [20/Oct/2007:12:28:56 +0600] "GET /fallback HTTP/1.0" 302 193

В конфиге nginx присутствует такое:

location / {
    proxy_redirect          http://backend.ru:8080/ /;
    if ($request_method = POST) {
        proxy_pass              http://localhost:8080;
        break;
    }
    set $memcached_key "$uri";
    memcached_pass  127.0.0.1:11211;
    error_page      404 = /fallback;
    default_type    text/html;
    ssi on;
}
location = /fallback {
    proxy_pass              http://localhost:8080;
    proxy_redirect          http://backend.ru:8080/ /;
    ssi on;
}

-- 
engineer


More information about the nginx-ru mailing list