
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는 사용자 에이전트를 감지하지 못하고 캐시 페이지만 제공하는 것 같습니다.
누군가 나를 도와줄 수 있나요? 어떤 제안이라도 대단히 감사하겠습니다.