it.net.cn使用了nginx缓存,因为要为手机做适配,所以nginx需要对同一个页面比如首页http://it.net.cn/需要根据当前访问用户使用的浏览器是PC机浏览器还是手机浏览器来做不同的缓存。 nginx的缓存足够灵活,只要适当的配置就可以做到这一点,首先需要在nginx配置文件的http配置范围内添加如下配置: map $http_user_agent $device_type { default 'pc'; ~(iPhone|Android|IEMobile|Balckberry) 'mobile'; }上面的配置是根据当前请求的user-agent来设置变量$device_type的值,我们的策略很简单,如果匹配了(iPhone|Android|IEMobile|Balckberry) 就认为是手机浏览器,默认是pc。 有了这个变量,还需要把这个变量放到nginx缓存的键中,如下配置nginx缓存键的部分配置: #fast cgi cache def fastcgi_cache_path /data0/nginx-1.2.6/cache levels=1:2 keys_zone=nginx_webpy_cache:30m inactive=1d; fastcgi_temp_path /data0/nginx-1.2.6/cache/temp; fastcgi_cache_key "$scheme$request_method$host/$device_type$request_uri$is_args$args"; #end请注意fastcgi_cache_key配置中有/$device_type这里是把上面提到的$device_type变量放到了缓存键中,这样就可以保证nginx对于手机或者pc上的User-agent来使用不同的缓存了。 nginx的相关配置就是这样子了,需要注意,如果你的应用还需要根据需求来purge缓存的话,需要purge两份缓存,purge缓存时,也要在url的path的最前面添加/pc或者/mobile. (责任编辑:IT) |