讓Nginx支援if多重判斷方法
示例一:
nginx不支援if else 多重判斷,需要用另一種方法來解決如下例:
location /api/opertree/ {
proxy_next_upstream error timeout invalid_header;
proxy_pass_header server;
proxy_http_version 1.1;
proxy_set_header Connection “”;
set $flag 0;
if ($request_uri ~* “/api/XXX/onenode”) {
set $flag “${flag}1”;
}
if ($request_uri ~* “(uid=[0-9]*[5-9]&)|((uid=[0-9]*[5-9]$))”) {
set $flag “${flag}2”;
}
if ($request_uri ~* “uid=((XXXX|XXXX)&)|((XXXX3|XXX3)$)”) {
set $flag “${flag}3”;
}
if ($flag ~* “01(2|3)”)
{
proxy_pass http://commendfe/api/XXXX/list?$args;
break;
}
proxy_pass http://opertree;
}
示例二:
①nginx if判斷&&(並且)寫法
set $allowphp “;
if ($request_method ~ ^(POST)$) {
set $allowphp p;
}
if ( $request_filename !~ .php$) {
set $allowphp “${allowphp}c”;
}
if ( $allowphp = pc) {
set $allowss false;
}
PS:上面程式碼的意思是 post 提交併且是php檔案的把變數$allowss設定成false
②nginx if判斷||(或)寫法
set $allowss true;
if ($http_x_forwarded_for ~ ” ?222.186.34.41$”) {
set $allowss false;
}
if ($http_x_forwarded_for ~ ” ?180.97.106.37$”) {
set $allowss false;
}
PS:ip地址222.186.34.41或180.97.106.37的把變數$allowss設定成false.上面的程式碼我主要用來禁用ip用的,因為我用了cdn所以ip判斷用的$http_x_forwarded_for
③結合上面兩段程式碼,實現禁止ip訪問,禁止用post訪問非php的檔案
set $allowss true;
set $allowphp “;
if ($request_method ~ ^(POST)$) {
set $allowphp p;
}
if ( $request_filename !~ .php$) {
set $allowphp “${allowphp}c”;
}
if ( $allowphp = pc) {
set $allowss false;
}
if ($http_x_forwarded_for ~ ” ?222.186.34.41$”) {
set $allowss false;
}
if ($http_x_forwarded_for ~ ” ?180.97.106.37$”) {
set $allowss false;
}
if ($allowss = false) {
return 403;
}
以上是雲棲社群小編為您精心準備的的內容,在雲棲社群的部落格、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜尋按鈕進行搜尋文件 , 檔案 , 變數 , 程式碼 配置 nginx if 判斷url、nginx if else 判斷、nginx if 判斷 不等於、nginx if 多重判斷、nginx if 判斷get引數,以便於您獲取更多的相關知識。
相關文章
- Nginx實現IF語句裡的AND,OR多重判斷Nginx
- nginx 多if判斷。Nginx
- 判斷Nginx存活狀態Nginx
- 原型判斷方法原型
- nginx判斷路徑是否含有某個引數做判斷Nginx
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- 如何判斷股票有沒有主力?主力的判斷方法
- Python中型別最佳判斷方法Python型別
- js基礎-12-判斷陣列和判斷物件的方法JS陣列物件
- 採用nginx反向代理讓websocket 支援 wssNginxWeb
- 讓你的Nginx支援分散式追蹤Nginx分散式
- js判斷物件的幾種方法JS物件
- getDate方法的妙用(js判斷閏年)JS
- 判斷Linux系統是否被黑的方法Linux
- postgresql判斷是否為數字的方法SQL
- JS的判斷語句:判斷、迴圈JS
- 判斷是否是陣列的幾種方法陣列
- Swift 幾種動態判斷類的方法Swift
- JS中判斷null、undefined與NaN的方法JSNullUndefinedNaN
- mssql sqlserver 判斷字串大小寫的方法分享SQLServer字串
- Python中判斷字典的值常用的方法!Python
- Python中判斷字母大小寫常用的方法!Python
- Python 判斷質數的另一種方法Python
- JS判斷物件是否為空物件的方法JS物件
- php判斷變數是不是null的方法PHP變數Null
- nginx 判斷移動端或者 PC 端 進入不同專案Nginx
- 判斷無線網路卡是否支援5GHz頻段
- vite 支援optional Chaining(可選鏈判斷運算子 ?.)和 nullishCoalescingOperatorViteAINullGo
- if 判斷使用
- 使用帶型別判斷的比較判斷型別
- js函式中的if判斷和a==b判斷JS函式
- JS常用判斷空對像的幾種方法JS
- 網路開發003 小筆記 判斷方法筆記
- JS資料型別判斷的幾種方法JS資料型別
- javascript中對變數型別的判斷方法JavaScript變數型別
- 寫一個方法判斷頁面滾動方向
- 寫一個判斷裝置來源的方法
- 如何判斷外鏈質量:基本方法詳解