I'm currently using nginx as reverse proxy with caching enabled.
However, the main site has two different layouts, depending on the user-agent (mobile or not).
I've tried something similar to this:
# 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;
However, nginx gives an error, stating proxy_cache can't be used in an if-structure.
Any other way to serve from a different cache depending on the browser?
Thanks, Tuinslak
Why using different cache? Probably it would be sufficient to define your cache key based on
$iphone_request
variable?Redirect to subdomain for mobile devices (with different caching policy)?