我正在做我的应用程序基于用户代理parsing的初始输出…这基本上打破了请求渲染,所以初始渲染将匹配引导大小的“xs”,“sm”,“md”,“lg” …
我有我的正则expression式制定出来,以便移动设备将得到输出呈现为“xs”和普通的平板电脑将默认为“sm”,其他任何人都得到“md”…客户端绑定后,它将调整为实际的设备显示,这主要是让浏览器将得到他们需要的大小。
我想要做的是:
X-Initial-Size – “xs”,“sm”,“md”,“lg”(实际上什么都不会解决为“lg” X-Is-Human – 与已知的机器人进行匹配以进行检测 X-Browser-Class – “古代”,“现代”,“ie#”(IE <= 9) X-Initial-Size和X-Browser-Class作为变长参数,以实现更长时间的服务器端输出caching。 – 如何基于regexp设置自定义variables对useragent?
使用地图 。 例如 :
map $http_user_agent $my_var { default "default_value"; "~^foo$" "value_1"; "~^bar$" "value_2"; }
– 如何为反向代理请求设置自定义标头?
使用proxy_set_header 。 例如 :
proxy_set_header My-Header $my_var;
– 我如何使用这些值作为caching参数?
将这些附加标题定义为代理caching键的一部分 :
proxy_cache_key $scheme$request_uri-$http_my_header-$http_my_other_header