我想知道我是否可以使用nginx实现以下场景:
我想我不能用nginx ootb做到这一点,但是lua脚本能做到吗?
(如果你想知道我们试图实现什么:客户端将文件发送到我们的FE服务器(nginx),它只将文件发送到文件服务器(服务器“A”),然后我们需要取文件服务器响应并通过另一台服务器“B”运行它,为用户建立一个很好的响应。
THX。
答案 0 :(得分:1)
所以使用nginx lua模块就是我想出来的:
location /upload {
lua_need_request_body on;
set $upres "";
rewrite_by_lua '
local res = ngx.location.capture("/doupload", {method = ngx.HTTP_POST, always_forward_body = true })
ngx.var.upres = res.body
';
content_by_lua '
local res = ngx.location.capture("/afterupload", { method = ngx.HTTP_POST, body = ngx.var.upres })
if res.status == 200 then
ngx.print(res.body)
end
';
}
location /doupload {
proxy_pass http://ServerA;
}
location /afterupload {
proxy_pass http://ServerB;
}
答案 1 :(得分:0)
使用Nginx反向代理服务器是不可能的。
您可以使用Web服务从server-A调用server-B来解析响应。