Не срабатывает пересылка на error_page

Евгений В Прудников jack060382 на mail.ru
Вт Янв 11 21:32:48 MSK 2011


Добрый день, nginx-ru.

Я хочу настроить отдачу закешированного контента из memcached напрямую
nginx-ом юзеру.

Имеется вот такой конфиг:
server {

        listen          80;
        server_name     dev.mysite.eu dev.mysite.de;
        root            /opt/www/stable_d1/www;
        charset         utf-8;

        #auth_basic             "closed site";
        #auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

        location ~ /.svn/ {
                deny all;
        }

        location /combat/user.json {
                default_type    application/json;
                set             $memcached_key   "$args";
                limit_conn      one 15000;
                memcached_pass  localhost:11211;
                error_page      404 502 504 = @fallback;
        }

        location @fallback {
                internal;
                access_log    /usr/local/nginx/logs/access_log main;
                proxy_pass    http://127.0.0.1:80$args;
        }
...
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|txt|flv|swf|css|js)$ {
                expires 3d;
                rewrite ^/(.*\.)v[0-9.]+\.(css|js|gif|png|jpg|swf)$     /$1$2;
                root /opt/www/stable_d1/www;
        }

        location / {
                index index.php;
                rewrite ^/(.*\.)v[0-9.]+\.(css|js|gif|png|jpg|swf)$     /$1$2;
                rewrite ^/(user|chat|location|combat|banking|clans|library|bank)/(.*)$  /index.php?entity=$1&uri=$2;
        }

        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                #fastcgi_pass   unix:/tmp/php-fcgi.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /opt/www/stable_d1/www$fastcgi_script_name;
                include        fastcgi_params;

.....

Собственно проблема в том, что при самых разных вариантах настройки
данной связки (котоых было найдено гуглом) всегда была одна и та же
проблема.
Если в мемкеше уже лежит потребная информацию (запросил фронт в обход
этого правила location /combat/user.json ), то это самое правило
прекрасно отдаёт информацию по ключу.

Если значения в кэше нет, то клиент получает 404, но до @fallback
запрос не идёт как по идее должен.

Помогите понять, что именно делается неправильно.


-- 
С уважением,
 Евгений Прудников                         mailto:jack060382 на mail.ru





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