12.Nginx判断手机电脑应用案例

2019-10-13  本文已影响0人  祁恩达

Nginx判断手机电脑应用案例

根据不同的浏览器, 以及不同的⼿机, 访问的效果都将不⼀样。

//通过浏览器来分别连接不同的浏览器访问不同的效果。
http    {
...
    upstream    firefox {
        server  172.31.57.133:80;
    }
    upstream    chrome  {
        server  172.31.57.133:8080;
    }
    upstream    iphone  {
        server  172.31.57.134:8080;
    }
    upstream    android {
        server  172.31.57.134:8081;
    }
    upstream    default {
        server  172.31.57.134:80;
    }
...
}

//server根据判断来访问不同的⻚⾯
server  {
    listen                          80;
    server_name     www.xuliangwei.com;
    #safari浏览器访问的效果
    location    /   {
            if  ($http_user_agent   ~*  "Safari"){
            proxy_pass  http://dynamic_pools;
            }                   
    #firefox浏览器访问效果
            if  ($http_user_agent   ~*  "Firefox"){
            proxy_pass  http://static_pools;
            }
    #chrome浏览器访问效果
            if  ($http_user_agent   ~*  "Chrome"){
            proxy_pass  http://chrome;
            }   
                                
    #iphone⼿机访问效果
            if  ($http_user_agent   ~*  "iphone"){
            proxy_pass  http://iphone;
            }
                
    #android⼿机访问效果
            if  ($http_user_agent   ~*  "android"){
            proxy_pass  http://and;
            }
                
    #其他浏览器访问默认规则
            proxy_pass  http://dynamic_pools;
            include proxy.conf;
             }
    }
}
image.png
image.png

根据访问不同⽬录, 代理不同的服务器

//默认动态,静态直接找设置的static,上传找upload
upstream    static_pools    {
    server  10.0.0.9:80         weight=1;
    }
upstream    upload_pools    {
    server  10.0.0.10:80        weight=1;
    }
upstream    default_pools   {
    server  10.0.0.9:8080       weight=1;
    }

    server  {
    listen                          80;
    server_name     www.xuliangwei.com;
#url:   http://www.xuliangwei.com/
    location    /   {   
        proxy_pass  http://default_pools;
        nclude  proxy.conf;
        }
#url:   http://www.xuliangwei.com/static/
    location    /static/    {
        proxy_pass  http://static_pools;
        include proxy.conf;
        }
#url:   http://www.xuliangwei.com/upload/
    location    /upload/    {
        proxy_pass  http://upload_pools;
        include proxy.conf;
        }
}
//⽅案2:以if语句实现。
if  ($request_uri ~* "^/static/(.*)$")
{
    proxy_pass http://static_pools/$1;
}
if  ($request_uri   ~* "^/upload/(.*)$")
{
    proxy_pass http://upload_pools/$1;
}
location    /   {   
    proxy_pass  http://default_pools;
    include proxy.conf;
}
上一篇下一篇

猜你喜欢

热点阅读