nginx return 200 如果 rewrite_by_lua_block 响应 header 包含模式

nginx return 200 if rewrite_by_lua_block response header contains pattern

仅当 rewrite_by_lua_block 响应包含带有模式的自定义 header(用于 google 计算引擎平衡器健康检查)时,我才需要 nginx 在某些位置 return 200 代码。

我是 lua 的新手,非常感谢您的帮助。

我建议尝试(未测试)

header_filter_by_lua_block {
   if ngx.status == 200 then
      local from, to, err = ngx.re.find( ngx.header.Foo, "your_regexp_here")
      if not from then
         ngx.status = 500 -- use the error code you need
      end
   end
}

请记住 - 您应该将 header_filter_by_lua_block 指令放在您的请求真正发送到上游的位置,比如您通过 rewrite_by_lua_block.

重定向到的位置