nginx rewrite + memcached не срабатывает эта связка

TJ на dir.bg TJ на dir.bg
Чт Июн 10 17:09:49 MSD 2010


Приветствую!

Nginx 0.7.65, debian

Есть мемкеш, в нем по ключу "$host:$uri" лежит содержимое страницы 
(ключи экспарятся каждую минуту).

Если такого ключа нет, управление передается (proxy_pass и далее) 
php-скрипту, который отрабатывает запрос, показывает содержимое и кладет 
содержимое страницы в кеш по нужному ключу.

Тут все стандартно, все работает.

Также есть rewrite, работающий, проверено.

А вот при попытке скрестить реврайт и мемкеш получается странное, 
редирект на корень хоста!


Кусок конфига:
...
        location / {
 
            if ($request_method = POST) {
                    proxy_pass http://127.0.0.1:8050;
                    break;
            }
 
           location /news/ {
                    rewrite ^/news/(.*)-([0-9]+)$   /news.php?id=$2 last;
            }
 
            set  $memcached_key  "$host:$uri";
 
            memcached_pass   10.100.0.47:11211;
 
            default_type     text/html;
            error_page       404 502 403 503 = /_fall_ ;
        }
 
        location = /_fall_ {
            proxy_pass 127.0.0.1:8070
            ...
        }
...

Причем, выносили rewrite за пределы location / (меняя на break в конце) 
- не помогает.

реврайт срабатывает:
2010/06/09 10:10:21 [notice] 12727#0: *2215 "^/news/(.*)-([0-9]+)$" 
matches "/news/la-la-la-6456827", client: 123.123.123.123, server: 
aaaa.bbb.cc, request: "GET /news/la-la-la-6456827 HTTP/1.1", host: 
"aaaa.bbb.cc"
2010/06/09 10:10:21 [notice] 12727#0: *2215 rewritten data: "/news.php", 
args: "id=6456827", client: 123.123.123.123, server: aaaa.bbb.cc, 
request: "GET /news/la-la-la-6456827 HTTP/1.1", host: "aaaa.bbb.cc"

После не следует никакого обращения к php-скрипту news.php, в proxy_pass 
не передается ничего, просто редирект в /

В чем может быть затык?

Спасибо за помощь!

С уважением,
TJ






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