Nginx는 동일한 URL 오류로 모바일 트래픽을 다른 페이지로 리디렉션합니다.

Nginx는 동일한 URL 오류로 모바일 트래픽을 다른 페이지로 리디렉션합니다.

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는 사용자 에이전트를 감지하지 못하고 캐시 페이지만 제공하는 것 같습니다.

누군가 나를 도와줄 수 있나요? 어떤 제안이라도 대단히 감사하겠습니다.

관련 정보