Nginx Varnish Erro Gunicorn Muitos Redirections

2

Eu tenho a seguinte configuração:

Nginx > Verniz > Gunicorn > Django

Eu quero armazenar em cache 2 versões do mesmo site (móvel e web) com o verniz.

Gunicorn:

WEB: gunicorn_django --bind 127.0.0.1:8181

MOBILE: gunicorn_django --bind 127.0.0.1:8182

Nginx:

WEB:

server {
        listen 80;
        server_name www.mysite.com;

        location / { 
                proxy_pass http://127.0.0.1:8282;   # pass to Varnish
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

MOBILE:

server {
        listen 80;
        server_name m.mysite.com;

        location / { 
                proxy_pass http://127.0.0.1:8282;   # pass to Varnish
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Verniz: default.vcl

backend mobile_mysite {
    .host = "127.0.0.1";
    .port = "8182";
}

backend mysite {
    .host = "127.0.0.1";
    .port = "8181";
} 

sub vcl_recv {
    if (req.http.host  ~ "^m.mysite.com$") {
        set req.http.host = "m.mysite.com";
        set req.backend = mobile_mysite;
    }elsif (req.http.host  ~ "^(www.)?mysite.com$") {
        set req.http.host = "mysite.com";
        set req.backend = mysite;
    }
    if (req.url ~ ".*/static") {
        /* do not cache static content */
        return (pass);
    }
}

comando VARNISH:

/usr/local/sbin/varnishd -P /var/run/varnish.pid -a 127.0.0.1:8282 -f /etc/varnish/default.vcl -T 127.0.0.1:6082 -t 120 -w 50,1000,120 -u varnish -g varnish

O problema:

No Nginx, se eu configuro a versão Mobile com o Varnish (porta 8282) e a versão WEB com Gunicorn (porta 8181), o MOBILE é armazenado em cache pelo verniz, WEB & O MOBILE funciona, mas a WEB não está armazenada em cache. Se eu definir o proxy_pass da versão WEB para Varnish (porta 8282) e reiniciar o Nginx, recebi um erro ao acessar a versão da web (www.mysite.com) "Muitos redirecionamentos".

Acho que meu problema vem do arquivo de configuração do Varnish, já que o site funciona bem se eu configurar o Nginx proxy_pass para as portas do Gunicorn (MOBILE & WEB).

    
por kollo 29.11.2012 / 11:23

0 respostas