環境:nginx的訪問控制實現中存在如下兩種方式:centos7
nginx 1.16.0
基於ip的訪問控制 : http_access_module
基於使用者的信任登入 : http_auth_basic_module
配置語法:
與allow相反,即不允許
實踐:
對配置檔案進行修改, 儲存重啟nginx。
當用瀏覽器訪問/
訪問/test.html
即本地無權訪問/test.html
access的侷限性: 如果訪問並不是由客戶端直接訪問服務端, 而是通過**進行訪問, 那麼僅僅識別ip是無法有效的進行限制的。
一種解決辦法, 採用別的http頭資訊進行控制,如 x_forwarded_for,但不一定所有的**都會存在該頭資訊,並且可能存在該資訊被修改的情況:
另外: 可以結合geo模組
還可以用http自定義變數傳遞
配置語法:
string 所填的字串非off即為開啟, 且會作為提示出現
file 用來儲存認證所用使用者名稱密碼的檔案路徑
實踐:首先生成儲存使用者名稱密碼的檔案
檢視一下:
接下來編輯配置檔案:
儲存退出後檢查語法, 重啟nginx服務
瀏覽器訪問/test.html, 有如下畫面:
輸入之前設定的賬戶密碼後即可檢視到頁面
若不輸入則返回401錯誤
同樣, 這種驗證方式也存在許多侷限性, 操作繁瑣,更改麻煩
當然也有幾種解決方式:
nginx結合lua實現高效驗證
nginx和ldap打通,利用nginx-auth-ldap模組
nginx 訪問控制模組
基於使用者的訪問控制模組 http access module 基於使用者登入信任的模組 有allow 對應的就有 deny 顯然,在http語境下或是在location語境下,產生控制的範圍是不一樣的 準備工作,從default.conf中複製乙份副本出來 命名為access mod.conf 對...
Nginx訪問控制
配置nginx,禁止訪問指定目錄下的指定程式 location images php php5 sh pl py nginx下配置禁止訪問 txt和 doc檔案 location txt doc location txt doc 禁止訪問單個目錄 location static 禁止訪問多個目錄 l...
Nginx訪問控制
基於ip的訪問控制 http access module 基於使用者的信任登入 http auth basic module 語法1 允許那些ip可以訪問 語法2 不允許那些ip訪問 1.配置不允許指定ip訪問,其他ip都可以訪問 location admin.html測試一下 使用其他ip訪問,訪...