Nginx多级代理,获取客户端真实请求IP以及每级代理IP
如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印IP地址。
原理分析:
只有客户端直接请求到的那个nginx能够拿到客户端的真实IP,所以第一级nginx配置了
proxy_set_header X-Real-IP $remote_addr;
这个配置就会将客户端IP放到http的header里,这样到最后的应用里可以通过request.getHeader去拿到客户端真实IP了