http-dec-req-hdr.lua 834 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- 功能:还原 HTTP 请求头
  2. -- 阶段:access_by_lua
  3. local hdrs, err = ngx.req.get_headers()
  4. local extHdrs
  5. for k, v in pairs(hdrs) do
  6. if k:sub(1, 2) ~= '--' then
  7. goto continue
  8. end
  9. ngx.req.clear_header(k)
  10. k = k:sub(3)
  11. if k == 'url' then
  12. ngx.var._url = v
  13. elseif k == 'ver' then
  14. ngx.var._ver = v
  15. elseif k == 'type' then
  16. ngx.var._type = v
  17. elseif k == 'mode' then
  18. ngx.var._mode = v
  19. elseif k == 'aceh' then
  20. ngx.ctx._acehOld = true
  21. elseif k == 'level' then
  22. ngx.var._level = v
  23. ngx.ctx._level = tonumber(v)
  24. elseif k == 'ext' then
  25. extHdrs = require('cjson').decode(v)
  26. else
  27. if k == 'referer' then
  28. ngx.var._ref = v
  29. end
  30. ngx.req.set_header(k, v)
  31. end
  32. ::continue::
  33. end
  34. if extHdrs then
  35. for k, v in pairs(extHdrs) do
  36. ngx.req.set_header(k, v)
  37. end
  38. end