ПРОЕКТЫ 


  АРХИВ 


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 не срабат ывает эта связка



On Thu, Jun 10, 2010 at 05:09:49PM +0400, TJ@xxxxxx wrote:

> Приветствую!
> 
> 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 
> не передается ничего, просто редирект в /
> 
> В чем может быть затык?
> 
> Спасибо за помощь!

Поставьте 0.8.40 с таким конфигом:

    proxy_cache_path  /path/to/cache  levels=1:2  keys_zone=CACHE:10m;

    server {
         location / {
             proxy_pass 127.0.0.1:8070;
         }
  
         location /news/ {
             location ~ ^/news/(.*)-([0-9]+)$  {
                 proxy_pass   proxy_pass 127.0.0.1:8070/news.php?id=$2;
             }
         }


-- 
Игорь Сысоев
http://sysoev.ru

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


 




Copyright © Lexa Software, 1996-2009.