nginx(五十)split_clients模块和geo模块

  相关概念扫盲

  map指令

一  split_clients模块

说明: 这个模块属于'变量'系列

关注点1: 如何'产生'变量? -->'什么方式'

关注点2: 如何'使用'变量? -->'场景'

①  split_clients

1)基于'比例'来划分用户,不是通过'特征'来进行A/B测试的

2)思考:50%、50 % 能不能'实现轮询'的

3)贴近'灰度',变量以'ip'的形式,proxy_pass 中使用'$variant'变量

4)变量可以在'哪里'使用?

②  案例讲解

③  split_clients的应用场景

二  geo模块

理解:类似' map 模块'的'特殊'实现,专用于 'client ip' 场景

典型的应用场景

①  geo 指令

②  geo 指令 {}中的6个可选参数

说明: 'proxy'和'proxy_recursive'效果类似'realip'模块的'real_ip_recursive'指令开关

细节点:include是相对于 '--conf-path'的路径

说明: 这里'proxy'的说法不准确,请看下面'proxy'的测试结果

proxy_recursive 

③  案例1使用默认的$remote_addr

realip模块修改$remote_addr

1)nginx如何'修改'$remote_addr

方式1: 在'post_read阶段'会'修改'remote_addr变量指向的内存值

备注: 对于'lvs(fullnat模式) + nginx',nginx是否安装'toa'模块也会影响'$remote_addr'

方式2: 在geo '新变量'使用之前,修改'$remote_addr',不一定非得在'post_read'阶段

 1)优先级问题

 

说明:如果'多个'同时能匹配,则子网掩码'越大'(越精确),'优先级越高'

2)输出$美元符号 

说明: 其它方式'\'转义'$'不生效

3)使用default

 

4)ranges场景 

5)proxy场景

+++++++++++++++++++++ "作用机制"  +++++++++++++++++++++

1)proxy:定义'可信'地址;

2)如果'请求源($remote_addr)'来自'可信地址(proxy 定义的)'范围

    [1]、如果有"X-Forwarded-For"请求头,则用'XFF'头的'最后一个ip地址'与geo中的'源值'进行匹配

    [2]、如果没有"X-Forwarded-For"请求头,则使用'$remote_addr'与geo指令中的'源值'进行匹配

3)相对于'普通'地址,可信地址是'顺序'检测的 -->也即'按照定义' 的顺序

注意: $remote_addr'不会'被修改 -->不管是'return'还是通过'nginx'的日志'可以看出'

6)include

注意: include的'相对路径'和'语法格式'

7)delete 了解

8)复杂场景

④  自定义ip变量

细节点: 此时跟'$remote_addr'没有'半毛钱'关系

⑤  其它补充

三  ngx_http_geo_module

说明: '了解'即可,后续有需要再'细看'

①  第一部分

 ② geoip_country

③  geoip_city

④  其它

     geoip_org
     geoip_proxy
     geoip_proxy_recursive 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值