资讯专栏INFORMATION COLUMN

Nginx 配置根据请求IP末段进行分流

qingshanli1988 / 2494人阅读

摘要:原文链接何晓东博客主要是参数中的判断的配置跳转,分流能减轻服务器的负载和压力,这种是一种非常常见的服务器部署架构。本条规则匹配完成后,终止匹配,不再匹配后面的规则。返回永久重定向,浏览器地址会显示跳转后的地址。

原文链接: 何晓东 博客

主要是 location 参数中的 if 判断的配置跳转,分流能减轻服务器的负载和压力,这种是一种非常常见的服务器部署架构。

根据 IP 最后一段的范围来跳转

#域名,ip,端口等信息请自行修改

upstream huaji-01.com {
  server 192.168.1.100:8080;
}

upstream huaji-02.com {
  server 192.168.1.200:8080;
}

server {

  listen 80;
  server_name www.huaji.com;

  location /
  {
   if ( $remote_addr ~* ^(.*).(.*).(.*).[1,125]$) {
        proxy_pass http://huaji-01.com;
        break;
    }

    proxy_pass http://huaji-02.com;
  }

}

以上为将 IP 末段为 1-125 的请求来源转发到 huaji-01.com,其他转向huaji-02.com,同样可以修改正则,例如

规则: $remote_addr ~* ^(.*).(.*).(.*).*[0268]$ 末尾为0268这样的偶数ip,跳转到 huaji-01.com,其他跳转到第二个域名;

规则:$remote_addr ~* ^(112).(.*).(.*).(.*)$ 开头为 112 的 IP 跳转到指定的域名;

规则:$http_x_forwarded_for ~* ^(112).(.*).(.*).(.*)$ 根据 forward 地址段来分流,开头为 112 的跳转到指定域名

if 指令条件判断的含义:

正则表达式匹配,其中:

~ 为区分大小写匹配

~* 为不区分大小写匹配

!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配,其中:

-f 和 !-f 用来判断是否存在文件

-d 和 !-d 用来判断是否存在目录

-e 和 !-e 用来判断是否存在文件或目录

-x 和 !-x 用来判断文件是否可执行

rewrite指令的最后一项参数为flag标记,flag标记有:

last 相当于 apache 里面的 [L] 标记,表示 rewrite。

break 本条规则匹配完成后,终止匹配,不再匹配后面的规则。

redirect 返回 302 临时重定向,浏览器地址会显示跳转后的 URL 地址。

permanent 返回 301 永久重定向,浏览器地址会显示跳转后的 URL 地址。

参考链接:

Nginx 中文文档

Nginx rewrite模块文档

继续推荐几个课程哈 -> 去看看

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40527.html

相关文章

  • Mac下使用ABTestingGateway快速搭建灰度网关

    摘要:下使用快速搭建灰度网关简介是新浪开源的一个可以动态设置分流策略的灰度发布系统,工作在层,基于和开发,使用作为分流策略数据库,可以实现动态调度功能。目前在京东如实时价格秒杀动态服务单品页列表页等都在使用架构,其他公司如淘宝去哪儿网等。 Mac下使用ABTestingGateway快速搭建灰度网关 ABTestingGateway简介 ABTestingGateway 是新浪开源的一个可以...

    2bdenny 评论0 收藏0
  • 马蜂窝ABTest多层分流系统的设计与实现

    摘要:为了解决以上问题,我们的分流系统选择基于实现,通过或者协议来传递分流信息。正交是指用户进入所有的实验之间没有必然关系。流量层内实验分流流量层内实验的因子有设备流量层。统计功效对于置信区间特征值等产品化功能支持。 什么是 ABTest 产品的改变不是由我们随便「拍脑袋」得出,而是需要由实际的数据驱动,让用户的反馈来指导我们如何更好地改善服务。正如马蜂窝 CEO 陈罡在接受专访时所说:「有...

    mingzhong 评论0 收藏0
  • 马蜂窝ABTest多层分流系统的设计与实现

    摘要:为了解决以上问题,我们的分流系统选择基于实现,通过或者协议来传递分流信息。正交是指用户进入所有的实验之间没有必然关系。流量层内实验分流流量层内实验的因子有设备流量层。统计功效对于置信区间特征值等产品化功能支持。 什么是 ABTest 产品的改变不是由我们随便「拍脑袋」得出,而是需要由实际的数据驱动,让用户的反馈来指导我们如何更好地改善服务。正如马蜂窝 CEO 陈罡在接受专访时所说:「有...

    dack 评论0 收藏0
  • 马蜂窝ABTest多层分流系统的设计与实现

    摘要:为了解决以上问题,我们的分流系统选择基于实现,通过或者协议来传递分流信息。正交是指用户进入所有的实验之间没有必然关系。流量层内实验分流流量层内实验的因子有设备流量层。统计功效对于置信区间特征值等产品化功能支持。 什么是 ABTest 产品的改变不是由我们随便「拍脑袋」得出,而是需要由实际的数据驱动,让用户的反馈来指导我们如何更好地改善服务。正如马蜂窝 CEO 陈罡在接受专访时所说:「有...

    opengps 评论0 收藏0
  • Nginx流量拦截算法

    摘要:自身有的请求限制模块流量限制模块基于令牌桶算法,可以方便的控制令牌速率,自定义调节限流,就能很好的限制请求数量,然而,问题还是在于无法热加载。漏桶算法可以很好地限制容量池的大小,从而防止流量暴增。这也是对流量拦截的算法,针对做流量监测。 showImg(http://77l5jp.com1.z0.glb.clouddn.com/blog/logo-nginx-lua.png); 0x0...

    fuchenxuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<