网站首页 > 技术教程 正文
概述: 使用过nginx的伙伴应该都知道,nginx本身默认是不支持或(or)和与(and)运算的,也就是&& 或者 | 等这样的方式都不能直接使用, 但不支持并不代表不能实现,本文中就来介绍在nginx下如何实现或运算和与运算。
案例1 、【与运算】,有些时候,我们项目中突然更换了域名,但老域名还是需要能提供访问,或者一个项目需要有多个域名可以访问,但最终效果我们都希望是跳转到一个域名在访问,因为会涉及ssl证书的问题,那么这个时候我们就需要针对域名做判断,这其中还会涉及到http与https的问题,我们需要做【与运算】。
set $req a;
if ( $host !~ "www.test.cn" ) {
set $req "${req}b";
}
if ( $scheme ~ https ) {
set $req "${req}c";
}
if ( $req = abc ) {
rewrite ^/(.*) https://www.test1.cn/$1 permanent;
}
#以下这条规则实现非指定域名统一跳转 if ( $host !~ "www.test.cn" ) { rewrite ^/(.*) https://www.test1.cn/$1 permanent; }
案例2、 【或运算】 , 这是在gitlab下http访问方式的一个限制测试,充分利用gitlab的http验证方式,限制gitlab的资源权限管理,下面来看看与运算的实现。
#定义访问用户
set $i a;
if ( $remote_user ~* "user01" ) {
set $i "${i}b";
set $i "${i}b2";
}
if ( $remote_user ~* "user02" ) {
set $i "${i}b3";
}
if ( $remote_user ~* "user03" ) {
set $i "${i}b4";
} }
#定义访问的项目
if ( $filtered_request_uri ~* "prd01" ) {
set $i "${i}c";
}
if ( $filtered_request_uri ~* "prd02" ) {
set $i "${i}d";
}
if ( $filtered_request_uri ~* "prd03" ) {
set $i "${i}e";
}
if ( $filtered_request_uri ~* "prd04" ) {
set $i "${i}f";
}
#最终的执行动作
if ( $i ~* "ab(c|d|e|f)" ) {
return 503;
}
if ( $i ~* "ab2(d|e|f)" ) {
return 403;
}
if ( $i ~* "ab3(c|d|e|f)" ) {
return 503;
}
if ( $i ~* "ab4(c|d|e|f)" ) {
return 403;
}
总结: 通过上面的案例我们可以发现,其实在nginx上实现或和与运算并不复杂,以上或(or)和与(and)运算在nginx的实现仅提供参考和思路,具体环境中,可以进行变化,欢迎留言。
猜你喜欢
- 2024-09-12 Nginx多端适配(nginx 多个conf配置)
- 2024-09-12 使用Nginx实现动静分离(nginx处理动态还是静态)
- 2024-09-12 蓝易云 - Nginx 设置禁用 OPTIONS 请求以及允许跨域教程!
- 2024-09-12 java工程师进阶:nginx 反向代理和负载均衡策略实战案例
- 2024-09-12 一文说清nginx规则匹配(含案例分析)
- 2024-09-12 Nginx 备忘录 - 04. 反向代理与负载均衡
- 2024-09-12 如何配置Nginx使其变成高性能服务器
- 2024-09-12 有时候你的Nginx代理也许就差一个JS脚本
- 2024-09-12 NGINX实现IF语句里的AND,OR多重判断
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)