Nginx - 对上游响应做出反应

时间:2016-01-23 21:28:50

标签: nginx lua reverse-proxy openresty

我使用nginx作为反向代理,使用外部提供程序上传文件存储。 当我处理文件上传时,我需要在将响应返回给用户之前跟踪(在我的数据库中)上传是否成功。因此,我想使用lua-nginx-module中提供的ngx.location.capture方法与我的后端讨论请求的结果。由于我需要等待上游服务器的响应,因此我只能在header_filter_by_lua中发出捕获。不幸的是,我无法在header_filter_by_lua发出任何向外通讯。 ngx.location.capturengx.socket.*ngx.exec仅在回复尚未到达时才可用。

我如何对nginx中的上游响应做出反应?

我想过的其他方法:

  • 让脚本观察访问日志,然后发出curl请求。 (似乎应该有一种更简单的方法)
  • 最初通过content_by_lua中的ngx.location.capture发送文件(我不认为这样可以处理最多5 GB的文件大小)

帮助表示赞赏:)

1 个答案:

答案 0 :(得分:0)

用于/upload位置: content_by_lua_file resty.upload module

PIVOT