ngxin实现user-agent 来访问不用页面,非常简单,但是我们一般前端是cache层,那么在缓存层怎么实现的,原理一样的。

今天用varnish实现,注意我们实现的是302   redirect 而不是rewrite url

实现目标:iphone来访问www.test.com 会自动跳转到m.test.com

贴代码

sub vcl_recv {   if (req.http.user-agent ~ "iphone") {      if (req.http.host ~ "www.test.com") {           error 750 "m.test.com";     }    }}sub vcl_error { if (obj.status == 750) {    if (obj.response ~ "m.test.com") {        set obj.http.Location = "http://m.test.com/";}    set obj.status = 302;        return (deliver); }}