memcached_pass, proxy_pass, error_page

Костенко Евгений nobody.mail at gmail.com
Wed Sep 16 17:49:18 MSD 2009


Добрый день.

Схема следующая есть frontend и два backend'а. Попытка c помощью 0.7.62
изобразить следующее:

# на уровне http декларирован upstream, используемый далее

    upstream  backends  {
        server   server1.domain.tld weight=4;
        server   server2.domain.tld weight=4;
        #server   127.0.0.1 weight=2;
    }

# Мелкие файлы пытаемся найти в memcached. Не нашли - по error_page 404 идев
в @try_backends .

       location ~* ^.+\.(css|js|ico|gif|png|jpeg|jpg)$ {
            set $memcached_key "$host$uri";
            memcached_pass     memcached;

            error_page 404  =  @try_backends;
        }

# В location прописан upstream backends, состоящий из тех самых бэкендов.

      location @try_backends {
            proxy_pass  http://backends;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream  http_404;
            proxy_intercept_errors on;

            if ($uri ~* \.(css|js|ico)$) { expires 1d; }
            if ($uri ~* \.(jpg|jpeg|gif|png|ico)$) { expires 1d; }
            error_page 404  =  @fallback;

            access_log          off;
        }

# Если и тут error_page 404 - идем в @fallback, где собственно root
/some/path/

       location @fallback {
            if ($uri ~* \.(css|js|ico)$) { expires 1d; }
            if ($uri ~* \.(jpg|jpeg|gif|png|ico)$) { expires 1d; }

            root        $root_path;
            access_log          off;
        }

#Все сие счатье инклюдится в каждый vhost следующим образом

   server {
        listen       xx.xx.xx.xx:80;
        server_name  www.domain.tld domain.tld;

        access_log /var/log/nginx/domain.tld.access.log  main buffer=1m;

        set $root_path   /some/path/vhosts/domain.tld/public_html;
        include        /usr/local/etc/nginx/common/*.conf;
    }

Фокус не удается - memcached и backend'ы проверяются, до fallback дело не
доходит.
Полистал архив рассылки, порылся в гугле - ответа не нашел.

Подскажите пожалуйста, где я промахнулся?

-- 
С Уважением,
Костенко Евгений

моб: +7(928)2961142
icq: 101241013
jabber: nobody.mail at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090916/d5ae76e5/attachment.html>


More information about the nginx-ru mailing list