Nginx redireciona o tráfego móvel para páginas diferentes no mesmo erro de URL

Nginx redireciona o tráfego móvel para páginas diferentes no mesmo erro de URL

Estou tentando redirecionar o tráfego móvel usando Nginx, mas ainda estou recebendo erros.

Aqui está o que eu coloquei nginx.conf:

map $geoip_country_code $preferred_upstream {
    default eu;
    US us;
}

map $geoip_country_code $preferred_upstream_mp {
    default eum;
    US usm;
}

upstream us {
    server unix:/path/us.sock;
}

upstream eu {
    server unix:/path/eu.sock;
}

upstream usm {
    server unix:/path/usm.sock;
}

upstream eum {
    server unix:/path/eum.sock;
}

server {
    ....
    location @fallback {
        # add trailing slash if url has no dot in it
        rewrite ^/([^\.]*[^/])$ /$1/ permanent;
        include     uwsgi_params;
        set $mobile_rewrite do_not_perform;

        if ($http_user_agent ~* '(iPhone|iPod|iPad|Android|BlackBerry|webOS|Windows Phone)') {
            set $mobile_rewrite perform;
        }

        if ($mobile_rewrite = do_not_perform) {
            uwsgi_pass $preferred_upstream;
            break;
        }

        if ($mobile_rewrite = perform) {
            uwsgi_pass $preferred_upstream_mp;
            break;
        }

        .......        
    }
    ...
}

Eu instalei ngx_http_headers_more_filter_modulee configurei o seguinte:

more_set_headers -s 200 'Vary: Accept-Encoding, User-Agent';

Funciona desde o início. Mas algumas vezes depois não é possível exibir a versão correta no dispositivo correto.

Eu não sei por quê. Provavelmente há algo errado na configuração do cache? Parece que o nginx não detecta o agente do usuário, mas apenas fornece uma página de cache.

alguém poderia me ajudar com isso? Qualquer sugestão seria muito apreciada.

informação relacionada