Nginx redirige el tráfico móvil a diferentes páginas en el mismo error de URL

Nginx redirige el tráfico móvil a diferentes páginas en el mismo error de URL

Estoy intentando redirigir el tráfico móvil usando Nginx pero sigo recibiendo errores.

Esto es lo que me puse 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;
        }

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

He instalado ngx_http_headers_more_filter_moduley configurado lo siguiente:

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

Funciona desde el principio. Pero algunas veces después no puede mostrar la versión correcta en el dispositivo correcto.

No sé por qué. ¿Probablemente haya algún problema con la configuración del caché? Parece que nginx no detecta el agente de usuario sino que solo proporciona una página de caché.

¿Puede alguien ayudarme con esto? Cualquier sugerencia será muy apreciada.

información relacionada