Linux_338_Nginx判断http_user_agent

2022-12-20  本文已影响0人  为宇绸缪

Nginx根据客户端转发配置
编辑default.conf,然后添加location

补充:location修饰符解释
= 表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。
~ 表示该规则是使用正则定义的,区分大小写。
~* 表示该规则是使用正则定义的,不区分大小写。
^~ 表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。
利用shell语句进行逻辑判断

location / {
# 这里进行浏览器判断
if ($http_user_agent ~* "MSIE")
{
    proxy_pass http://static_pools;
}
if ($http_user_agent ~* "Chrome")
{
    proxy_pass http://upload_pools;
}

if ($http_user_agent ~* "Safari")
{
    proxy_pass http://static_pools;
}

proxy_pass http://default_pools;
include proxy.conf;

}

将location里面的root和index给注释掉,然后加上这些if语句。以下是简洁版
通过浏览器的不同进行判断,以及转发动作
if ($http_user_agent ~* "MSIE")
{
    return 401;
}
if ($http_user_agent ~* "Chrome")
{
    return 402;
}

if ($http_user_agent ~* "Safari")
{
    return 403;
}
if ($http_user_agent ~* "curl"){
    return 405;
}

proxy_pass http://default_pools;
include proxy.conf;

}
上一篇下一篇

猜你喜欢

热点阅读