0
我有一個需求,就是在服務器返回響應時,向其他服務器發送請求,但openresty說在API body_filter_by_lua *的上下文中禁用了API。我使用模塊resty.http。 謝謝openresty on body_filter_by_lua發送套接字
我有一個需求,就是在服務器返回響應時,向其他服務器發送請求,但openresty說在API body_filter_by_lua *的上下文中禁用了API。我使用模塊resty.http。 謝謝openresty on body_filter_by_lua發送套接字
您可以更改主邏輯。
第一期子請求您的上游(location.capture或LUA-resty-HTTP)
一旦成功,你可以先通過Lua代碼下游發送響應,併發出下一個子請求從Lua你的「另一臺服務器」 。
更新 - 這是行不通的 作爲第二種方法,您可以將您的「其他服務器」視爲上游,並且只有在向原始服務器的子請求成功時才允許向此上游請求。
對於這兩種情況,您都可以使用access_by_lua *和content_by_lua *,其中cosocket API可用。
in access_by_lua *,無法獲得響應狀態,而在content_by_lua_ *中,我不知道如何將html返回給用戶。 1:用戶 - >服務器2:服務器 - >發送當前請求 - >其他服務器3:服務器 - >發送當前響應 - >其他服務器4:返回當前對用戶的響應,而不是lua說或其他。只是服務器返回 –
我不明白你的問題。您可以使用ngx.say()來返回html wiithin content_by_lua * –
https://github.com/openresty/lua-nginx-module#ngxlocationcapture有足夠好的關於返回響應的文檔,包括狀態 –