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