Nginx实现if多重判断配置方法示例

 更新时间:2015年05月13日 10:09:42   投稿:junjie  
这篇文章主要介绍了Nginx实现if多重判断配置方法示例,本文直接给出实现代码,需要的朋友可以参考下

nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,我们可以用变量的方式来实现:
首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:

复制代码 代码如下:

if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
    return 403;
}

下面这是等效的,并真实可用的配置
复制代码 代码如下:

set $flag 0;
if ($remote_addr ~ "^(12.34|56.78)") {
    set $flag "${flag}1";
}
if ($http_user_agent ~* "spider") {
    set $flag "${flag}2";
}
if ($flag = "012") {
    return 403;
}

相关文章

  • Nginx代理时header头中带

    Nginx代理时header头中带"_"信息丢失问题的解决

    这篇文章主要给大家介绍了关于Nginx代理时header头中带"_"信息丢失问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • nginx配置PC站手机站分离实现重定向

    nginx配置PC站手机站分离实现重定向

    这篇文章主要介绍了nginx配置PC站手机站分离实现重定向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Nginx + consul + upsync 完成动态负载均衡的方法详解

    Nginx + consul + upsync 完成动态负载均衡的方法详解

    这篇文章主要介绍了Nginx + consul + upsync 完成动态负载均衡,需要的朋友可以参考下
    2020-11-11
  • Forever+nginx部署Node站点的方法示例

    Forever+nginx部署Node站点的方法示例

    这篇文章主要介绍了Forever+nginx部署Node站点的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Nginx服务500:Internal Server Error原因之一

    Nginx服务500:Internal Server Error原因之一

    这篇文章主要介绍了Nginx服务500:Internal Server Error原因之一,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • WordPress中开启多站点支持及Nginx的重写规则配置

    WordPress中开启多站点支持及Nginx的重写规则配置

    这篇文章主要介绍了WordPress中开启多站点支持及Nginx的重写规则配置方法,在同一个WordPress软件中开启的多个站点如果需要绑定不同域名的话也可以使用WordPress MU Domain Mapping插件,需要的朋友可以参考下
    2016-03-03
  • nginx配置返回文本或json的方法

    nginx配置返回文本或json的方法

    有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,这篇文章主要介绍了nginx配置返回文本或json的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    这篇文章主要介绍了Nginx服务器中强制使用缓存的配置及缓存优先级的讲解,一定程度上可以帮助大家解决Nginx不缓存或缓存失效的问题,需要的朋友可以参考下
    2016-01-01
  • 提升Nginx性能的一些建议

    提升Nginx性能的一些建议

    这篇文章主要介绍了提升Nginx性能的一些建议,帮助大家更好的使用nginx,感兴趣的朋友可以了解下
    2020-09-09
  • 在Nginx服务器中启用SSL的配置方法

    在Nginx服务器中启用SSL的配置方法

    这篇文章主要介绍了在Ningx服务器中启用SSL的配置方法,本文前提是已经在Linux系统下安装好了OpenSSL,需要的朋友可以参考下
    2015-08-08

最新评论