前言
nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx安装信息,可以看到 下面有关 --with的nginx启动加载的模块信息。
realip模块
用途 :当本机 Nginx 处于反向代理后端时可以获取到用户的 真实IP地址 。
使用 : realip 功能需要 Nginx 添加 ngx_http_realip_module 模块,默认情况下是不被编译,如果需要添加,请在编译时添加 --with-http_realip_module 选项开启它。
realip 作用域
set_real_ip_from 、 real_ip_header 和 real_ip_recursive 都可以用于 http 、 server 、 location 区域配置。
realip 部分参数解释
- set_real_ip_from :设置反向代理服务器,即信任服务器IP
- real_ip_header X-Forwarded-For :用户真实IP存在 X-Forwarded-For 请求头中
- real_ip_recursive :
- off :会将 real_ip_header 指定的HTTP头中的最后一个IP作为真实IP
- on :会将 real_ip_header 指定的HTTP头中的最后一个不是信任服务器的IP当成真实IP
http 头中的 X-Forwarded-For、X-Real-IP、Remote Address 解释
X-Forwarded-For 位于HTTP请求头,是HTTP的扩展 header ,用于表示HTTP请求端 真实IP 。
格式如下:
X-Forwarded-For: client, proxy1, proxy2
Nginx 代理一般配置为:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
解释:
- X-Forwarded-For :Nginx追加上去的,但前面部分来源于nginx收到的请求头,这部分内容不是 很可信 。符合IP格式的才可以使用,否则容易引发 XSS 或者 SQL注入漏洞 。
- Remote Address :HTTP协议没有IP的概念, Remote Address 来自于TCP连接,表示与服务端建立TCP连接的设备IP,因此,Remote Address无法伪造。
- X-Real-IP :HTTP代理用于表示与它产生TCP连接的设备IP,可能是其他代理,也可能是真正的请求端。
realip 功能举例说明
下面是一个简单的架构图:
假设一:
1、如果 Nginx 没有使用 realip模块 ,第二台 Nginx中 X-Forwarded-For 请求是 1.1.1.1,但 remote_addr 地址是 2.2.2.2,这时应用服务可以通过 X-Forwarded-For 字段获取用户真实IP。不过这里有点风险,如果中间多几层反向代理服务,就无法获取唯一一个用户真实IP。
2、如果 Nginx 使用 realip模块 ,并如下设置;Nginx 会取 X-Forwarded-For 最后一个IP也就是 2.2.2.2 作为真实IP。最后应用服务拿到的地址也是 2.2.2.2,但事实这不是用户IP。
set_real_ip_from 2.2.2.2; set_real_ip_from 2.2.2.3; real_ip_header X-Forwarded-For; real_ip_recursive off;
3、如果 Nginx 使用 realip模块 ,并如下设置;由于 2.2.2.2 是信任服务器IP,Nginx 会继续往前查找,发现 1.1.1.1 不是信任服务器IP,就认为是真实IP。但事实 1.1.1.1 也就是用户IP。最后应用服务也拿到唯一的用户真实IP。
set_real_ip_from 2.2.2.2; set_real_ip_from 2.2.2.3; real_ip_header X-Forwarded-For; real_ip_recursive on;
总结
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。