Nginx leitet mobilen Datenverkehr auf verschiedene Seiten mit demselben URL-Fehler um

Nginx leitet mobilen Datenverkehr auf verschiedene Seiten mit demselben URL-Fehler um

Ich versuche, den mobilen Datenverkehr mit Nginx umzuleiten, erhalte aber immer noch Fehler.

Hier ist, was ich angezogen habe 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;
        }

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

Ich habe ngx_http_headers_more_filter_modulefolgendes installiert und eingerichtet:

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

Es funktioniert von Anfang an. Aber danach kann manchmal nicht die richtige Version auf dem richtigen Gerät angezeigt werden.

Ich weiß nicht, warum. Wahrscheinlich stimmt etwas mit den Cache-Einstellungen nicht? Es klingt, als ob Nginx den Benutzeragenten nicht erkennt, sondern nur eine Cache-Seite bereitstellt.

Kann mir jemand dabei helfen? Ich bin für jeden Vorschlag sehr dankbar.

verwandte Informationen