我使用 nginx 作为反向代理,通过外部提供程序上传文件存储。当我处理文件上传时,我需要在向用户返回响应之前跟踪(在我的数据库中)上传是否成功。因此,我想使用ngx.location.capture
lua-nginx-module 中提供的方法与我的后端讨论请求的结果。由于我需要等待上游服务器的响应,我只能在header_filter_by_lua
. 不幸的是,我无法在 中发出任何向外的通信header_filter_by_lua
。ngx.location.capture
,ngx.socket.*
并且ngx.exec
仅在响应尚未到达时可用。
我如何对 nginx 中的上游响应做出反应?
我想过的其他方法:
- 让脚本监视访问日志,然后发出 curl 请求。(似乎应该有一个更简单的方法)
- 最初通过 content_by_lua 中的 ngx.location.capture 发送文件(我认为这不会处理高达 5 GB 的文件大小)
帮助表示赞赏:)