NGINX的 IF AND 和 OR

devopsec 等级 416 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安全配置
安全是一个重要的问题,必须引起注意。 1. nginx介绍 nginx本身不能处理PHP(http://www.ttlsa.com/php/ "php"),它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发fastcgi管理进程处理,fastcgi管理进程选择cgi子
nginx配置系列-日志切割
nginx配置系列日志切割 背景 nginx日志中我们希望日志能够每天或者每小时自动切割,nginx本身没有提供自动切割的机制,但是我们可以通过脚本或者稍加改造让其具备这种能力。下面让我们看看怎么操作吧。 日志切割 常见做法有四种,在我们做之前我们来学习一下nginx日志中常用的内置变量字段都是什么意思 nginx内置变量
NGINX的 IF AND 和 OR
if的逻辑用法 什么是逻辑用法呢, 就程序中的and、or关系, 就叫做逻辑了. NGINX支持if的 and 与 or 或者 && 与 || 吗? 答案是No. 当你尝试这样配置, 重载nginx时, nginx会报出错误 location /test/ { default_type text/html;
干掉nginx 403 forbidden报错
目录问题解决1. 设置启动用户owner2. 切换管理员模式3. 开放访问目录权限4. 明确index索引文件 问题按照网上的教程,我们顺利启动了默认80端口的nginx服务。具体安装教程可以参考:https://liuzhen.blog.csdn.net/article/details/83898155接下来,我们开始将它修改成自己的静态服务,但是遇到
Kubernetes Ingress — NGINX
在 Kubernetes 中,Service 是一种抽象的概念,它定义了每一组 Pod 的逻辑集合和访问方式,并提供一个统一的入口,将请求进行负载分发到后端的各个 Pod 上。Service 默认类型是 ClusterIP,集群内部的应用服务可以相互访问,但集群外部的应用服务无法访问。为此 Kubernetes 提供了 NodePorts,LoadBalan
Kubernetes Ingress — Kong
Kong 是由 Mashape 公司开源的一个高性能、高可用、易扩展的 API Gateway 项目,基于OpenResty(Nginx Lua模块),并提供了插件实现 API 的 AOP 功能。可以通过负载均衡、插件扩展等方式,来处理网络请求。 Kong 主要的概念Servi
运维安全-信息安全
本文转自 ,如有侵权,请联系删除。
Nginx 中使用 map 解决多来源跨域问题
map 中需注意,如果存在多个配置文件,不能使用相同的变量名,故这里示例为 $allow_origin_Abash 在 server 上方添加 mapmap $http_origin $allow_origin_A { default ""; "~^(https?://localhost(:\d)?)" $1; "
全栈进阶:Nginx基本功能及其原理
<div class"output_wrapper" id"output_wrapper_id" style"fontsize: 16px; color: rgb(62, 62, 62); lineheight: 1.6; wordspacing: 0px; letterspacing: 0px; fontfamily: 'Helvetica
前端也要懂 - 带你全面认识 Nginx
前言作为一名前端开发人员,你是不是经常碰到领导让你上服务器去修改 Nginx 配置,然而你会以“我是前端,这个我不会”为理由搪塞过去呢!今天就让我们一起告别这种尴尬,向“真正”的程序员迈进!!!Nginx 概述 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 \ 24 小时不间
nginx根据url中的参数做代理转发
功能: 一个nginx代理转发,代理目标地址来自url中的host参数 location /   errorpage 418 @other;  recursiveerrorpages on;  resolver 1.2.4.8;  set $host '';  if ($querystring host(http(s)?:\/\/[^\/]+(.com|
实测Tengine开源的Dubbo功能
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 背景 Tengine是阿里巴巴基于Nginx开发并开源的Web服务器,它继承了Nginx所有的功能和特性,并在其基础上做了大量的扩展和增强,其中像动态模块加载,四层负载均衡,reuseport支持等能力,都逐渐被Nginx官方吸收引用。Tengine在开
OpenResty入门
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 OpenResty介绍 OpenResty通过汇聚各种设计精良的 Nginx模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动
前端容易理解错的跨域原理
前言关于跨域这件事,自从我遇到后,了解一下,这事就过去了。我也一直认为这是个小问题,大家应该都懂。直到我要教妹妹前端时遇上这个问题才发现,这个问题得整个逻辑讲出来其实还挺绕的。知道问题怎么解决很简单,但是要讲清楚问题为什么出现就十分复杂了。那么我突然就好奇了,大家是都懂这个逻辑了嘛。所以我在几个交流群里问了一个问题 为什么很多人都出现本地环境会跨域而线上环境
重磅!这份笔记连阿里P8面试官都说太详细了
一、Spring Boot 相关(1)SpringBoot 面试专题 什么是 Spring Boot? Spring Boot 有哪些优点? 什么是 JavaConfig? 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? Spring Boot 中的监视器是什么? 如何在 Spring Boot 中禁用 Act