客户端在访问互联网应用服务器时,与真实的应用服务器之间会因为有多层反向代理,而导致真实应用服务器获取的仅是最近一层的反向代理服务器IP。为使Nginx后端的上游服务器可以获得真实客户端IP,Nginx提供了ngx_http_realip_module模块用以实现真实客户端IP的获取及传递的功能。通过该模块提供的配置指令,用户可以手动设置上层反向代理服务器的IP作为授信IP,Nginx服务器根据配置指令的配置排除授信IP,而甄别出真实的客户端IP进行日志记录,并传递给上游服务器。
nginx配置
server {
listen 8088;
access_log logs/proxy.access.log main;
set_real_ip_from 192.168.2.159; # 设置192.168.2.159为授信IP
real_ip_header X-Forwarded-For; # 通过HTTP头字段X-Forwarded-For获取真实客户端IP
real_ip_recursive on; # 以最后一个非授信IP为真实客户端IP
tcp_nodelay off; # 因启用缓冲区功能,所以关闭立刻发送功能
location ~ ^/ {
proxy_force_ranges on; # 强制启用字节范围请求支持
proxy_pass http://192.168.2.145:8082;
break;
}
}
评论区