Transport de demande capturée dans nginx par lua

Je fais quelque chose comme ça:

location /foo {
content_by_lua_block {
local reqType = ngx.var.request_method
if reqType == "POST"
res = ngx.location.capture("/bar")
else
res = ngx.location.capture("/baz")
end
ngx.say(res.body)
}
}

location /bar {
internal;
#fastcgi, omitted
}

location /baz{
internal;
#fastcgi, omitted
}
}

Mais les titres envoyés PHP, perdu et le code d'état est toujours égal 200. Y a-t-il un moyen d'envoyer la réponse source?

ngx.say()

Il suffit d'imprimer un corps de réponse et j'ai besoin de capturer toute la demande et de l'envoyer au navigateur.

j'utilise

openresty/1.9.15.1

Changement: j'ai trouvé
https://serverfault.com/a/798111/323241
Faites-le, mais s'il y a une autre façon de faire cela, nous serons très reconnaissants.
Invité:

Emilie

Confirmation de:

Ceci est possible en utilisant les propriétés de réponse:

response = ngx.location.capture("/bar")
for headerName, header in pairs(response.header) do
ngx.header[headerName] = header
end
ngx.status = response.status
ngx.say(response.body)
ngx.exit(response.status)

Pour répondre aux questions, connectez-vous ou registre