Re: Перебор именованных location

Alexander Moskalenko alexander.moskalenko на gmail.com
Пн Авг 29 13:15:29 UTC 2011


Спасибо, исправлю


возник еще вопрос по данной схеме но уже с кешированием

    location ~* "^/[a-z0-9]{32}/[a-z]+/g2/c/" {
        error_page   404  =  @remote;
        fastcgi_pass   ...;
        fastcgi_intercept_errors on;
        fastcgi_cache  fastcgi_cache;
        fastcgi_cache_valid 200 302 1w;
        fastcgi_cache_valid  404 2m;
        fastcgi_cache_use_stale updating error timeout invalid_header
http_500 http_503 http_404;
        fastcgi_cache_key "$request_method|$uri";
    }

    location @remote {
        fastcgi_pass   fpm_remote;
        fastcgi_cache  fastcgi_cache;
        fastcgi_cache_valid 200 302 1w;
        fastcgi_cache_valid  404 2m;
        fastcgi_cache_use_stale updating error timeout invalid_header
http_500 http_503 http_404;
        fastcgi_cache_key "$request_method|$uri";
    }

без кеша все работает как положено
но если включить кеш то получается что после обращения к бекенду ответ с
кодом 404 попадает в кеш, а потом именованый локейшн берет ответ из кеша

одинаковые ключи сделаны специально чтобы независимо от того откуда был
получен ответ результат кешировался


собственно вопрос:
как сделать так чтобы 404 ответ в кеш не попадал при локальной обработке, но
при получении 404 от удаленного бекенда все-таки складывался?

2011/8/29 Igor Sysoev <igor at sysoev.ru>

> On Mon, Aug 29, 2011 at 03:54:22PM +0300, Alexander Moskalenko wrote:
> > спасибо, помогло
> >
> >
> > - fastcgi_interpcept_errors  on;
> > + fastcgi_intercept_errors  on;
> >
> > также получилась вот такая конструкция для другого алгоритма
> >
> > location ~* "^/(?<section>.*)/g_\d+/(?<img_name>.*)/.*\.(gif|jpe?g)$" {
> >         try_files $uri @remote;
> > }
> >
> > location @remote {
> >         include proxy_params;
> >         proxy_pass http://static_remote;
> >         proxy_intercept_errors on;
> >         error_page 404 = /$section/nophoto/$img_name.png;
> >         proxy_store             on;
> >         proxy_store_access      user:rw  group:rw  all:rw;
> > }
>
> На будущее - всегда делать префиксы в УРЛах для локализации регулярных
> выражений:
>
> location /some_action/ {
>   location ~* "^/some_action/(?<section>.*)/...
>
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20110829/b42d6c76/attachment-0001.html>


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