NGINX的 IF AND 和 OR

devopsec 等级 775 0 0

if的逻辑用法

什么是逻辑用法呢, 就程序中的and、or关系, 就叫做逻辑了.

NGINX支持if的 and 与 or 或者 && 与 || 吗?

答案是No. 当你尝试这样配置, 重载nginx时, nginx会报出错误

location = /test/ {
    default_type text/html;
    set $b 0;
    if ( $remote_addr != '' && $http_x_forwarded_for != '' ){
        set $b '1';
    }
    echo $b;
}

[root@test-vm ~]# /usr/local/nginx/sbin/nginx -t

nginx: [emerg] invalid condition "$remote_addr" in /usr/local/nginx/conf/nginx.conf:60 configuration file /usr/local/nginx/conf/nginx.conf test failed 那么我们应该怎样来实现and 和or的逻辑关系呢?

location = /test_and/ {
    default_type text/html;
    set $a 0;
    set $b 0;
    if ( $remote_addr != '' ){
        set $a 1;
    }
    if ( $http_x_forwarded_for != '' ){
        set $a 1$a;
    }
    if ( $a = 11 ){
        set $b 1;
    }
    echo $b;
}
location = /test_or/ {
    default_type text/html;
    set $a 0;
    set $b 0;
    if ( $remote_addr != '' ){
        set $a 1;
    }
    if ( $http_x_forwarded_for != '' ){
        set $a 1;
    }
    if ( $a = 1 ){
        set $b 1;
    }
    echo $b;
}
收藏
评论区

相关推荐

NGINX的 IF AND 和 OR
if的逻辑用法 什么是逻辑用法呢, 就程序中的and、or关系, 就叫做逻辑了. NGINX支持if的 and 与 or 或者 && 与 || 吗? 答案是No. 当你尝试这样配置, 重载nginx时, nginx会报出错误 location /test/ { default_type text/html;
LNMP架构之访问日志、日志切割、静态文件不记录及过期时间设置
本文索引: * Nginx访问日志 * Nginx日志切割 * 静态文件不记录日志和过期时间 * * * ### Nginx访问日志 * 修改nginx配置文件 [root@localhost vhost]# vim /usr/local/nginx/conf/nginx.conf # 搜索:/log_format
Ubuntu+Flask + Nginx + uWSGI + uWSGI Emperor
前提条件 在我们开始安装Nginx及其他所需软件之前先安装一些前提软件。首先,我们需要PIP与virtualenv: sudo apt-get install python-setuptools sudo easy_install pip sudo pip install virtualenv Nginx ----- 安装并运
nginx+keepalived实现双机热备高可用
转载自[www.fwqtg.net](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.fwqtg.net)[服务器托管网](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.fwqtg.net) 安装nginx(
Docker 使用入门,创建一个Nginx服务器
**运行环境:** `MAC` **Docker 版本:** `Docker version 17.12.0-ce, build c97c6d6` ### 一、启动Nginx 服务器 > 启动Nginx 服务器,并进入模拟终端 docker run -p 8080:80 --name nginx_web -it nginx /bin/bas
Docker总结与经验分享
![](https://oscimg.oschina.net/oscnet/20331012-50a1-402d-8601-fd14f323ad1e.png) ****\-     Docker是什么    -**** **1. 项目上线** * 代码部署阶段:测试、开发、需求等需要通力合作 * 软件部署阶段:MySql、Ngin
FastDFS 配置 Nginx 模块及访问测试
#备注:以下nginx-1.10.3源码目录根据nginx版本号不同会有相应的变化,以nginx版本号为准 #一、安装 Nginx 和 fastdfs-nginx-module 1,安装 Nginx 请看:Nginx安装教程 2,下载fastdfs-nginx-module模块,这里是通过wget下载: wget https://nchc.dl
Linux10.2 安装LNMP
### Nginx安装   处理静态文件能力更强。   Nginx官网 nginx.org,最新版1.13,最新稳定版1.12   Nginx应用场景:web服务、反向代理、负载均衡   Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些
Nginx 搭建直播流服务
搭建直播流服务器 ======== 技术 -- * Nginx * nginx-rtmp-module-1.1.11 (nginx 插件) 步骤 -- 1. 下载nginx 和 nginx-rtmp-module 源文件 2. 解压 nginx 和 nginx-rtmp-module 3. ./configure --add-modul
Nginx 的负载均衡模式有哪些?它的实现原理是什么?
![](https://oscimg.oschina.net/oscnet/954f1527-ee59-4185-acbb-af9b14ea3f40.png) > 文章来源:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=59#/detail/pc?id=1793 > 作者: 拉勾教育 >
Nginx+Lua+Tomcat搭建分布式集群
Nginx+Tomcat+cluster集群搭建 ------------------------ > Tomcat1 --> 带有newrelic的主Tomcat复制版本 > Tomcat2 --> 纯净的相同版本的Tomcat > Nginx1.8 > SSL证书原始文件和密码 ### 安装Nginx nginx1.8 downlo
Nginx介绍
**Nginx介绍** • Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 • Nginx应用场景:web服务、反向代理、负载均衡 • Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出
Nginx日志运维笔记
在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计。 **1)Nginx日志的标准格式(可参考:[http://www.cnblogs.com/kevingrace/p/5893499.html](https://www.oschina.net/ac
Nginx系列之使用ssl模块配置支持代理HTTPS链接
Nginx系列之使用ssl模块配置支持HTTPS访问 1、博客前言介绍 -------- 最近在用nginx代理https的第三方链接,因为不是做运维,所以对nginx并不是特殊熟悉,所以到处询问摸索了挺久 2、查看ssl\_module --------------- 要使用nginx代理https的链接,先用检查nginx是否已经有安装了ssl
Nginx配置参数中文详细说明
Nginx配置参数中文详细说明 --------------- #定义Nginx运行的用户和用户组 user www www; # #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; # #全局错误日志定义类型,[ debug | info | notice |