我们将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