Nginx 將行動流量重新導向至相同網址錯誤的不同頁面

Nginx 將行動流量重新導向至相同網址錯誤的不同頁面

我正在嘗試使用 Nginx 重定向行動流量,但仍然收到錯誤。

這是我穿的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;
        }

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

我已經安裝ngx_http_headers_more_filter_module並設定了以下內容:

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

它從一開始就有效。但有時無法在正確的裝置上顯示正確的版本。

我不知道為什麼。應該是快取設定有問題吧?聽起來nginx不偵測用戶代理,只提供快取頁面。

有人可以幫我弄這個嗎?任何建議將不勝感激。

相關內容