openResty 写日志失败header
openResty fails to write log header
我有以下配置将日志写入access.log
开始 Header 使用 LUA 和屏蔽
记录
set $resp_header "";
header_filter_by_lua_block {
local rh = ngx.resp.get_headers()
for k, v in pairs(rh) do
ngx.var.resp_header = ngx.var.resp_header .. k.."="..v.." "
end}
END Header 使用 LUA 和 Masking
记录
这对我的大多数上游响应都适用。但是对于发送重复 header 的同名“Set-Cookie”,两者的字符数都相当长。 nginx 错误日志说 .
[错误] 3142684#3142684:790582 未能 运行 header_filter_by_lua:header_filter_by_lua:11:尝试连接本地 'v'(一个 table 值)
我正在查看所有可能的 LUA 文档。任何帮助将不胜感激。
作为解决方法,我在 nginx 中强制设置了 header“Set-Cookie”。
#---
对于 k, v 成对 (rh) 做
如果 k:lower() == ("set-cookie") 那么
v="已编辑"
结尾
#---
谢谢。
一些 headers 允许重复(Set-Cookie
是其中之一)并且将作为 table 由 get_headers()
函数返回,您的代码没有考虑(因此你得到的错误)。
将 ngx.var.resp_header .. k.."="..v.." "
替换为 ngx.var.resp_header .. k.."="..(type(v) == "table" and table.concat(v, ";") or v).." "
我有以下配置将日志写入access.log
开始 Header 使用 LUA 和屏蔽
记录 set $resp_header "";
header_filter_by_lua_block {
local rh = ngx.resp.get_headers()
for k, v in pairs(rh) do
ngx.var.resp_header = ngx.var.resp_header .. k.."="..v.." "
end}
END Header 使用 LUA 和 Masking
记录这对我的大多数上游响应都适用。但是对于发送重复 header 的同名“Set-Cookie”,两者的字符数都相当长。 nginx 错误日志说 .
[错误] 3142684#3142684:790582 未能 运行 header_filter_by_lua:header_filter_by_lua:11:尝试连接本地 'v'(一个 table 值)
我正在查看所有可能的 LUA 文档。任何帮助将不胜感激。
作为解决方法,我在 nginx 中强制设置了 header“Set-Cookie”。
#--- 对于 k, v 成对 (rh) 做 如果 k:lower() == ("set-cookie") 那么 v="已编辑" 结尾 #---
谢谢。
一些 headers 允许重复(Set-Cookie
是其中之一)并且将作为 table 由 get_headers()
函数返回,您的代码没有考虑(因此你得到的错误)。
将 ngx.var.resp_header .. k.."="..v.." "
替换为 ngx.var.resp_header .. k.."="..(type(v) == "table" and table.concat(v, ";") or v).." "