我正在使用nginx作为文件存储上传与外部提供程序的反向代理。 当我处理文件上传时,我需要跟踪(在我的数据库中)在向用户返回响应之前上传是否成功。因此,我想使用lua-nginx模块中提供的ngx.location.capture
方法来与我的后端讨论请求的结果。由于我需要等待上游服务器的响应,因此我只能在header_filter_by_lua
中发出捕获。不幸的是,我不能在header_filter_by_lua
中发出任何向外通信。 ngx.location.capture
,ngx.socket.*
和ngx.exec
仅在响应尚未到达时才可用。Nginx - 对上游回应作出反应
我该如何对nginx中的上游响应做出反应?
其他方法我也想过:
- 有一个剧本看访问日志,然后发出一个卷曲的请求。 (好像应该有一个更简单的方法)
- 最初通过ngx.location.capture发送文件中content_by_lua(我不认为这会处理高达5 GB的文件大小)
帮助表示赞赏: )
我去解决这一限制使用'os.execute( “卷曲[...]”)'这感觉完全错误的,但工程。注意将用户生成的输入传递到shell中! – user2474697