目前我正在使用nginx作为caching启用的反向代理。
但是,主站点具有两种不同的布局,具体取决于用户代理(移动与否)。
我试过类似的东西:
# mobile users if ($http_user_agent ~* '(iPhone|iPod|mobile|Android|2.0\ MMP|240x320|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|hiptop|IEMobile)') { set $iphone_request '1'; } if ($iphone_request = '1') { proxy_cache mobile; } if ($iphone_request = '') { proxy_cache site; } proxy_cache_key "$scheme://$host$request_uri"; proxy_pass http://real-site.tld;
但是,nginx提供了一个错误,说明proxy_cache不能在if结构中使用。
任何其他方式从不同的caching服务取决于浏览器?
谢谢,Tuinslak
为何使用不同的caching? 基于$iphone_requestvariables定义caching键可能就足够了?
proxy_cache_key "$iphone_request$uri";
redirect到移动设备的子域(使用不同的caching策略)?