nginx возвращает 200, если заголовок ответа rewrite_by_lua_block содержит шаблон

Мне нужно, чтобы nginx возвращал код 200 в каком-либо месте, только если ответ rewrite_by_lua_block содержит настраиваемый заголовок с шаблоном (для проверки работоспособности балансировщика вычислений Google).

Я очень новичок в lua, поэтому любая помощь очень ценится.


person cardinal-gray    schedule 12.04.2016    source источник


Ответы (1)


Предлагаю попробовать (не проверено)

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.

person Alexander Altshuler    schedule 13.04.2016