nginx $remote_addr 详解

简介:

nginx的自带变量 $remote_addr 代表客户端的IP


remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP。



但是实际场景中,我们即使有代理,也需要将$remote_addr设置为真实的用户IP,以便记录在日志当中,当然nginx是有这个功能,但是需要编译的时候添加--with-http_realip_module 这个模块,默认是没有安装的。


#这个模块允许从请求标头更改客户端的IP地址值,默认为关


忽略x_forwarded_for

其实,当你使用了Nginx的realip模块后,就已经保证了remote_addr里设定的就是客户端的真实IP,再看下这个配置

上面的配置就是把从192.168.100.0这一网段过来的请求全部使用X-Forwarded-For里的头信息作为remote_addr

1
2
set_real_ip_from  192.168.100.0 /24 ;
real_ip_header     X-Forwarded-For;


它就是把x_forwarded_for设为remote_addr,而nginx里的x_forwarded_for取的就是其中第一个IP。

使用这些设置就能保证你的remote_addr里设定的一直都是客户端的真实IP,而x_forwarded_for则可以忽略了





提示:

nginx -V 可以查看到的编译参数和编译的模块(静态和动态)


没有这个模块  ngixn配置文件中是不识别set_real_ip_from   192.168.100.0/24; 这个指令的


最简单测试的的就是:

 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module



模拟当然就很简单了

客户端:

curl -I bbs.test.com  -H 'X-Forwarded-For: 2.2.2.2' 

代理看到的remote_addr 会是"2.2.2.2"


ngixn server看到的也是2.2.2.2 


有client nginx-proxy  ngixn-server   curl -I bbs.test.com 这样就可以测试了。

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1827244如需转载请自行联系原作者


cuizhiliang

相关文章
|
应用服务中间件 nginx Python
Nginx $remote_addr和$proxy_add_x_forwarded_for变量详解
Nginx $remote_addr和$proxy_add_x_forwarded_for变量详解
474 0
|
前端开发 应用服务中间件 nginx
|
2月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
153 7
|
3月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
3月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
408 0
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
160 61
|
27天前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
68 5
|
2月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
2月前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
1月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
84 3