Skip to content

Instantly share code, notes, and snippets.

@ckolos
Last active October 23, 2018 18:08
Show Gist options
  • Save ckolos/e9c10c6ec5ef5e344d33674627b3f099 to your computer and use it in GitHub Desktop.
Save ckolos/e9c10c6ec5ef5e344d33674627b3f099 to your computer and use it in GitHub Desktop.
rewrite_xff
header_filter_by_lua_block {
function get_xff(s, delimiter)
result = {};
for match in (s..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match);
end
return result[#result];
end
xff = ngx.req.get_headers()["X-Forwarded-For"]
ngx.req.clear_header("X-Forwarded-For")
new_xff = get_xff(xff, ",")
ngx.req.set_header("X-Forwarded-For", new_xff)
}
@ckolos
Copy link
Author

ckolos commented Oct 23, 2018

header_filter_by_lua_block {                                                                                                                                                                                       
  local xff = ngx.req.get_headers()["X-Forwarded-For"]                                                                                                                                                             
  ngx.req.clear_header("X-Forwarded-For")                                                                                                                                                                          
  local new_xff = string.match(xff, ",? *([^,]+)$")`                                                                                                                                                               
  ngx.req.set_header("X-Forwarded-For", new_xff)                                                                                                                                                                   
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment