小知识:Nginx配置编写时支持逻辑运算与大小写字母转换的方法

逻辑运算

nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。

我们可以用变量的方式来间接实现。

要实现的语句:
?
1
2
3
if ($arg_unitid = 42012 && $uri ~/thumb/){
echo “www.tuohang.net”;
}

如果按照这样来配置,就会报nginx: [emerg] invalid condition错误。

可以这么来实现,如下所示:
?
1
2
3
4
5
6
7
8
9
10
set $flag 0;
if ($uri ~ ^/thumb/[0-9]+_160.jpg$){
set $flag “${flag}1”;
}
if ($arg_unitid = 42012){
set $flag “${flag}1”;
}
if ($flag = “011”){
echo “www.tuohang.net”;
}

nginx实现大小写字母转换(ngx_http_lower_upper_case模块)

各种程序或脚本都有实现大小写字母互转的功能,今天讲讲ngx_http_lower_upper_case,功能很简单,至于可以用在什么环境大家可以根据自己的情况.多一种模块多一种解决方案.本模块将字符串转换为大小写然后赋值给变量. 用句俗话来说”存在即合理”,软件存在性总有他存在的道理。

1. 安装nginx模块
?
1
–add-module=path/to/circle_gif/directory

具体方法就不再讲述了,可以参考运维生存时间的<如何安装nginx第三方模块>

2.upper/lower 指令

upper

语法:upper $var string

配置段: location

小些转大写

lower

语法:lower $var string

配置段: location

大写转小写

3. nginx配置
?
1
2
3
4
5
6
location /ttlsa_upper_lower {
upper $var1 “Hello,tuohang.net”;
lower $var2 “HELLO,tuohang.net”;
echo $var1;
echo $var2;
}

4. 测试

?
1
# curl http://test.tuohang.net/ttlsa_upper_lower/
?
1
2
HELLO,tuohang.net
hello,tuohang.net

nginx模块地址:https://github.com/replay/ngx_http_lower_upper_case/archive/master.zip

ngx_http_lower_upper_case地址:https://github.com/replay/ngx_http_lower_upper_case
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux内核继续打造WWAN子系统 发展通用驱动并加强扩展能力

2023-5-1 3:35:02

建站知识

小知识:如何使用 Linux anacron 命令

2023-5-1 3:43:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索