Porównaj ceny domen i usług IT, sprzedawców z całego świata

Transport przechwyconego żądania do nginx przy użyciu lua


Robię coś takiego:
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
}
}

Ale nagłówki wysłane przez PHP są tracone, a kod statusu to zawsze 200. Czy istnieje sposób, aby po prostu wysłać oryginalną odpowiedź?
       ngx.say()
po prostu wyślij treść odpowiedzi i muszę pobrać całe żądanie i wysłać je do przeglądarki.
używam
       openresty/1.9.15.1
Edycja: znalazłem

sposób
https://serverfault.com/a/798111/323241
aby to zrobić, ale jeśli istnieje inny sposób, bylibyśmy bardzo wdzięczni.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jest to możliwe przy użyciu właściwości odpowiedzi:
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)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się