こんなかんじで、これと組み合わせて、それぞれキャッシュするようにしてます。
判定条件はmt-plugin-httpuseragentと同じです。
set $ua pc;
set $general 1;
set $smartphone 0;
set $featurephone 0;
set $docomo 0;
set $au 0;
set $softbank 0;
set $iphone 0;
set $android 0;
set $ipad 0;
set $androidtab 0;
if ($http_user_agent ~* DoCoMo) {
set $ua docomo;
set $docomo 1;
set $general 0;
set $featurephone 1;
}
if ($http_user_agent ~* UP\.Brower|KDDI-) {
set $ua au;
set $au 1;
set $general 0;
set $featurephone 1;
}
if ($http_user_agent ~* J-PHONE|Vodafone|SoftBank) {
set $ua softbank;
set $softbank 1;
set $general 0;
set $featurephone 1;
}
if ($http_user_agent ~* iPhone) {
set $ua iphone;
set $iphone 1;
set $general 0;
set $smartphone 1;
}
if ($http_user_agent ~* iPad) {
set $ua ipad;
set $ipad 1;
}
if ($http_user_agent ~* Android) {
set $android 1;
set $androidtab 1;
}
if ($http_user_agent ~* Mobile) {
set $androidtab 0;
}
if ($http_user_agent ~* SC-01C) {
set $androidtab 1;
set $android 0;
}
if ($android = 1) {
set $ua android;
set $general 0;
set $smartphone 1;
}
if ($androidtab = 1) {
set $ua androidtab;
}
if ($request_method != GET) {
set $do_not_cache 1;
}
if ($uri !~* "(/|.(jpg|png|gif|jpeg|css|js|swf|pdf|htm|html))$") {
set $do_not_cache 1;
}
#if ($remote_addr ~ "^(XXX\.XXX\.XXX\.XXX|YYY.YYY.YYY.YYY)$") {
# set $do_not_cache 1;
#}
proxy_cache_key $ua$scheme$host$uri$is_args$args;
proxy_no_cache $do_not_cache;
proxy_cache_bypass $do_not_cache;
proxy_cache cache_static_file;
proxy_cache_valid 200 5m;
proxy_cache_valid any 1m;