Skip to content

Commit e2b0ce1

Browse files
committed
Lua script to render an unmodified X-Forwarded-For header
1 parent ba603aa commit e2b0ce1

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

inner-proxy/conf/conf.d/default.conf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ server {
1212
}
1313

1414
location /app {
15-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
15+
proxy_set_header X-Bad-Forwarded-For $proxy_add_x_forwarded_for;
16+
proxy_set_header X-Forwarded-For $realip_add_x_forwarded_for;
1617
proxy_set_header X-Real-IP $remote_addr;
1718
proxy_pass http://backend;
1819
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
local _M = {}
2+
3+
function _M.run()
4+
if (ngx.var.http_x_forwarded_for == "" or ngx.var.http_x_forwarded_for == nil) then
5+
ngx.var.realip_add_x_forwarded_for = ngx.var.realip_remote_addr
6+
else
7+
ngx.var.realip_add_x_forwarded_for = ngx.var.http_x_forwarded_for .. ", " .. ngx.var.realip_remote_addr
8+
end
9+
end
10+
11+
return _M

inner-proxy/conf/nginx.conf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ http {
9393
set_real_ip_from 10.20.30.2/32;
9494
real_ip_header X-Forwarded-For;
9595

96+
map $request $realip_add_x_forwarded_for { default ""; }
97+
access_by_lua_block {
98+
require("realip-x-forwarded-for").run()
99+
}
100+
96101
# Include the rest of the configuration
97102
include /etc/nginx/conf.d/*.conf;
98103
}

0 commit comments

Comments
 (0)