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;
}
网友评论