久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

利用nginx如何匹配多個條件

2019-09-06 13:34:51 5408

問題分析

熟悉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;

}


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: