外部プロバイダーとのファイル ストレージ アップロードのリバース プロキシとして 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 のファイルサイズを処理するとは思いません)
助けていただければ幸いです:)