当rewrite_by_lua_block响应头包含特定模式时,nginx返回200

我需要在某些位置上,仅当rewrite_by_lua_block响应包含匹配模式的自定义标头(用于Google Compute Engine负载均衡器健康检查)时,nginx返回200代码。

我是lua的新手,所以任何帮助都将不胜感激。

点赞
用户2060502
用户2060502

我建议尝试(未经测试)

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 -- 使用你需要的错误代码
      end
   end
}

请记住 - 您应该将 header_filter_by_lua_block 指令放置在实际发送请求到上游的位置,例如您通过 rewrite_by_lua_block 重定向的位置。

2016-04-13 08:04:57