我們將nginx訪問控制部分委託給一個單獨的服務,我們使用access_by_lua_file和lua-resty-hawk和子請求來完成請求的身份驗證。爲什麼我們必須在使用OpenResty/nginx lua進行子請求之前閱讀請求體?
的docs說:
你總是應該啓動子請求之前讀取請求體(由在任調用ngx.req.read_body或配置lua_need_request_body)。
本來我們已經錯過了這個細節,事情出現工作。我試圖找到關於這個要求的更多背景信息,但是卻空了。
在閱讀主體之前授權請求將是很好的,因爲如果客戶端只是試圖上傳各種垃圾並填充我們的磁盤,我們可能能夠及早終止連接並防止某種DoS攻擊。
這是爲什麼限制?
[auth_request](http://nginx.org/en/docs/http/ngx_http_auth_request_module.html)用於未經全身讀取的預認證。身份驗證響應也可以緩存以防止來自經過身份驗證的用戶的多餘請求 – Anatoly