Nginx配置編寫時支持邏輯運算與大小寫字母轉換的方法
邏輯運算
nginx的配置中不支持if條件的邏輯與&& 邏輯或|| 運算 ,而且不支持if的嵌套語法,否則會報下面的錯誤:nginx: [emerg] invalid condition。
我們可以用變量的方式來間接實現(xiàn)。
要實現(xiàn)的語句:
if ($arg_unitid = 42012 && $uri ~/thumb/){
echo "www.fzitv.net";
}
如果按照這樣來配置,就會報nginx: [emerg] invalid condition錯誤。
可以這么來實現(xiàn),如下所示:
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.fzitv.net";
}
nginx實現(xiàn)大小寫字母轉換(ngx_http_lower_upper_case模塊)
各種程序或腳本都有實現(xiàn)大小寫字母互轉的功能,今天講講ngx_http_lower_upper_case,功能很簡單,至于可以用在什么環(huán)境大家可以根據(jù)自己的情況.多一種模塊多一種解決方案.本模塊將字符串轉換為大小寫然后賦值給變量. 用句俗話來說"存在即合理",軟件存在性總有他存在的道理。
1. 安裝nginx模塊
--add-module=path/to/circle_gif/directory
具體方法就不再講述了,可以參考運維生存時間的<如何安裝nginx第三方模塊>
2.upper/lower 指令
upper
語法:upper $var string
配置段: location
小些轉大寫
lower
語法:lower $var string
配置段: location
大寫轉小寫
3. nginx配置
location /ttlsa_upper_lower {
upper $var1 "Hello,jb51.net";
lower $var2 "HELLO,jb51.net";
echo $var1;
echo $var2;
}
4. 測試
# curl http://test.jb51.net/ttlsa_upper_lower/
HELLO,jb51.net hello,jb51.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
相關文章
nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決辦法
Nginx服務器的反向代理服務是其最常用的重要功能,由反向代理服務也可以衍生出很多與此相關的Nginx服務器重要功能,下面這篇文章主要給大家介紹了關于nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決的相關資料,需要的朋友可以參考下2023-12-12

