我正在使用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