nginx限制ip訪問

2022-07-19 08:15:13 字數 908 閱讀 9349

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沒有進行完...