ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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


TJ@xxxxxx пишет:
Приветствую!

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@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.