Nginx 限制訪問 配置基於子請求結果的認證

2021-08-15 16:29:08 字數 1182 閱讀 2453

nginx 和 nginx plus 可以使用外部伺服器或服務對**的每個請求進行身份驗證。為了執行認證,nginx 向用於驗證子請求的外部伺服器發出 http 子請求。 如果子請求返回 2xx 響應碼,則允許訪問,如果返回 401 或 403,則訪問被拒絕。 這種型別的認證允許實施各種認證方案,例如多因素認證(multifactor authentication),或允許實施 ldap 或 oauth 認證。

確保 nginx 在編譯時開啟了with-http_auth_request_module配置選項。執行命令檢查輸出是否包含這個http_auth_request_module模組:

$ nginx -v

2>&1 | grep -- 'http_auth_request_module'

在需要認證請求的 location 中,通過auth_request指令指定乙個用於處理認證子請求的內部 location:

location /private/
對於所有路徑中含 /private 的請求,會觸發乙個到內部的 /auth 這個 location 的子請求。

指定內部 location 並在這個 location 中使用proxy_pass指令會把所有的認證子請求**到認證伺服器或認證服務:

location = /auth
由於認證子請求忽略請求體,需要將proxy_pass_request_body指令設定為 off,並將 content-length 標頭設定為空字串 null:

location = /auth
通過proxy_set_header指令將完整的原始請求 uri 與引數一起傳遞:

location = /auth
可以通過auth_request_set指令設定基於子請求結果的變數值:

location /private/
這個例子將上面的步驟總結到乙個配置中:

Nginx訪問限制配置

nginx訪問限制可以基於兩個方面,乙個是基於ip的訪問控制,另乙個是基於使用者的信任登陸控制 下面我們將對這兩種方法逐個介紹 基於ip的訪問控制 介紹 可以通過配置基於ip的訪問控制,達到讓某些ip能夠訪問,限制哪些ip不能訪問的效果 這是允許 訪問的配置方法 配置語法 allow address...

Nginx配置限制IP訪問

有時候我們需要針對遮蔽某些惡意的ip訪問我們的 或者限制僅僅某些白名單ip才能訪問我們的 這時候我們就可以在nginx中通過簡單的配置來達到目的。相關配置語句 遮蔽單個ip訪問 格式 deny ip deny 123.68.23.5 允許單個ip訪問 格式 allow ip allow 123.68...

Nginx 訪問限制相關配置

在nginx中統計各個ip訪問次數 awk nginx site log.access.log sort uniq c sort n1.訪問限制過濾 連線限制 limit conn zone binary remote addr zone conn addr 32m 請求併發限制 limit req...