nginx限制ip,目前從網上發現了兩種解決方法
1)是採用原生的方式來實現
set $flag f;
if ($remote_addr = 10.1.20.35 )
if ($flag = 1)
2)是採用geo模組來實現,預設1.16.1是自帶的有這個模組
http中增加如下
geo $bad_user
location中增加如下配置:
if ($bad_user = 1)
另外除錯中發現有個問題
如果是location / 這種寫 rewrite ^ /999.html break; 會自動找html目錄下的999.html檔案
但是如果是
location /cas 這種寫 rewrite ^ /999.html break; 會自動找cas 專案下的999.html檔案,這個自然就找不到了
所以就想了另乙個解決辦法,自定義500 return 500;
error_page 500 /999.html;
location =999.html
總結:1,採用自定義的500錯誤解決html找不到的情況
2,nginx-1.16.1 reload的情況下,某些配置是沒有生效的,只能-s stop 然後-c nginx.conf才能生效,這個可能是版本之間的差別,間接也導致nginx除錯了好久沒有生效的原因
3,算是乙個笨方法,本來想乙個location中限制所有的ip locaion只能這麼寫:location ~* / 但是邏輯上有問題,想訪問的url,比如 /cas 也都先匹配這個了,就比較矛盾
解決辦法就是,所有的location中 都加入 如下的配置,雖然加的地方有些多,但還是解決了問題,後續想想還有沒有更好的解決辦法
if ($bad_user = 1)
nginx 限制 ip 訪問
環境 centos7.6 nginx 1.16.1 背景 nginx 伺服器已經配置好了公網 ip 和 網域名稱證書 公網 ip 對我來說是透明的,沒有管理許可權,所以只好在 nginx 伺服器上做 ip 限制 未修改之前,登入日誌的 remote addr 總是為 192.12.182.3,猜測這...
nginx限制ip訪問許可權
一 伺服器全侷限ip vi nginx.conf allow 10.57.22.172 deny all 二 站點限ip vi vhosts.conf 站點全侷限ip location fastcgi pass 127.0.0.1 9000 fastcgi index index.php fastc...
nginx限制指定ip訪問
nginx安裝 略,詳情見 安裝部分 這裡我們模擬的場景是什麼呢,就是限制某個ip端訪問我們的伺服器,這多用於什麼呢?大家應該可以聯想的到,對,就是被攻擊的情況下,模式封除ip進行訪問我們的應用。現在我們的nginx安裝好了,進行頁面訪問,瀏覽器輸入ip埠。注 這裡由於我的演示的nginx沒有進行完...