nginx中proxy_set_head怎么设置头部信息,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
十载的江宁网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整江宁建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“江宁网站设计”,“江宁网站推广”以来,每个客户项目都认真落实执行。导读 | 反向代理服务器是一种代理服务器,用于管理从外部网络到内部网络的连接或任何特定请求。它保护、路由和管理从外部网络到内部网络、Web服务器或专用网络的流量。 |
nginx作为web服务器一个重要的功能就是反向代理。
当然你也可以使用nginx配置正向代理,本是介绍如何配置nginx的反向代理。
nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。
$proxy_add_x_forwarded_for $http_x_forwarded_for
这两个的变量的值的区别,就在于,proxy_add_x_forwarded_for 比http_x_forwarded_for 多了一个$remote_addr的值,但是$remote_addr 只能获取到与服务器本身直连的上层请求ip,所以设置$remote_addr一般都是设置第一个代理上面;但是问题是,有时候是通过cdn访问过来的,那么后面web服务器获取到的,永远都是cdn 的ip 而非真是用户ip,那么这个时候就要用到X-FORward—for了,这个变量的意思,其实就像是链路反追踪,从客户的真实ip为起点,穿过多层级的proxy ,最终到达web 服务器,都会记录下来,所以在获取用户真实ip的时候,一般就可以设置成,proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 这样就能获取所有的代理ip 客户ip。
在打印log 的时候
$http_x_real_ip|$remote_addr
就是 用户的真是ip
配置如下
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
还有一种情况就是,客户在经过cdn请求的时候,本来$proxy_add_x_forwarded_for这里记录的值都全部都包括,但是,当你需要取值的时候,会发现,即便用排除代理ip模块。
set_real_ip_from 100.0.0.0/8;(这里是已知的代理ip) real_ip_header X-Forwarded-For; real_ip_recursive on;
X-Forwarded-For
里依然有多个ip,这个时候直接取值$http_x_real_ip 就好了,但是前提条件是,cdn 那边也设置了X-forward,不然,你这边获取的你认为是用户的ip 其实是cdn的ip。
看完上述内容,你们掌握nginx中proxy_set_head怎么设置头部信息的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!
当前名称:nginx中proxy_set_head怎么设置头部信息-创新互联
标题路径:http://lswzjz.com/article/dsjech.html