有没有这样的 nginx 模块:将请求的头部分发给权限控制服务器,服务器通过权限和其他控制逻辑后,将结果返回给 nginx,然后 nginx 将请求体(尺寸比较大)发给实际保存请求体的服务器。
- 0次
- 2021-05-27 19:39:58
- idczone
主要用在文件上传和下载的场景,请求体比较大,如果把整个请求都发向控制服务器的话,传输开销太大:nginx-->控制服务器-->存储服务国外服务器器。
如果能实现这样的功能的话,传输就变成这样:
nginx-->控制服务器
nginx-->存储服务器
对nginx不熟, 不知道有没有现成的模块(在官方的模块列表里没有),如果需要自己开发,有没有什么思路,必须用C开发吗?
sendfile ?
有的。 http://wiki.nginx.org/X-accel
X-accel 正解
ngx_http_auth_request_module: http://nginx.org/en/docs/http/ngx_http_auth_request_module.html
或者
ngx_lua: https://github.com/chaoslawful/lua-nginx-module
http://nginx.org/en/docs/http/ngx_http_secure_link_module.html
官方模块的话有这个可以做访问控制,但是和你那个权限服务不符;
X-accel跟你的需求相符,但是只用于下载。
非常感谢,先试试看X-accel和auth_request。