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

TJ tj на dir.bg
Вт Июн 29 12:28:39 MSD 2010


Извиняюсь за назойливость, все-таки есть (или будет) решение, 
позволяющее сделать rewrite и вытащить потом контент из memcache по 
ключу с новым URL?


TJ at dir.bg пишет:
> Приветствую!
>
> 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 mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru



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