欢迎来到代码驿站!

Nginx

当前位置:首页 > 服务器 > Nginx

利用nginx如何匹配多个条件

时间:2021-05-14 10:36:38|栏目:Nginx|点击:

问题分析

熟悉nginx的都知道,nginx不想其他语言那样可以支持逻辑或与运算,也不支持if else和if嵌套。

因为公司内部服务器不允许外部访问,所以在nginx使用$remote_addr对ip做了限制。但是在微信上访问会出现ip不是真实ip的情况。真实ip出现在$http_x_forwarded_for里面。

处理方法

需求

这里需要匹配$remote_addr $http_x_forwarded_for这两项其中一个获取是内部ip即可访问。

配置nginx

$remote_addr不匹配 $flag为01,$http_x_forwarded_for也不匹配 $flag为011,最后返回403.

set $flag 0;
if ($remote_addr !~ (127.0.0.1)) {
 set $flag "${flag}1";
}
if ($http_x_forwarded_for !~ (127.0.0.1)) {
 set $flag "${flag}1";
}
if ($flag = "011") {
 return 403;
}

总结

上一篇:Nginx代理axios请求以及注意事项详解

栏    目:Nginx

下一篇:Nginx开启Brotli压缩算法实现过程详解

本文标题:利用nginx如何匹配多个条件

本文地址:http://www.codeinn.net/misctech/121046.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有