码迷,mamicode.com
首页 > Web开发 > 详细

Nginx通过请求的URL做定向路由策略

时间:2014-10-28 02:17:57      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:nginx   定向路由   nginx转发规则   负载   容灾   

应用有一个场景是需要根据url中"&_router=10.0.0.1"参数指定的机器转发到相应机器上做处理,看了一下Nginx文档,发现可以通过内嵌变量$arg_来完成,比较方便和灵活,代码如下:

location / {
    if ( $arg__router = 10.0.0.1 ){
        proxy_pass http://10.0.0.1:8080;
        break;
    }
    if ( $arg__router = 10.0.0.2 ){
        proxy_pass http://10.0.0.2:8080;
        break;
    }
    proxy_pass http://bakend;
}


完成上述配置后,Nginx接收到"/api/start.do?run=ok&_router=10.0.0.1"的请求就会把它转发到"http://10.0.0.1:8080"这台机器处理,从而实现根据url中的制定参数做定向策略路由。还可以根据url其他参数来做不通的策略,比如:"/api/start.do?run=ok&_type=app"

location / {
    if ( $arg__type = app ){
        proxy_pass http://apphost;
        break;
    }
    if ( $arg__type = game ){
        proxy_pass http://gamehost;
        break;
    }
    proxy_pass http://bakend;
}


那么定向路由做好后,开始配置负载和容灾,拿apphost为例:

upstream apphost {
    server 10.1.1.1:8080;        #1
    server 10.1.1.2:8080;        #2
    server 10.1.1.3:8080 backup; #3
}

1、2号服务器承担日常请求流量,当1、2号服务器全都不可用时3号服务器再处理请求。backup的作用是平时不参与负载,只有当组内没有其它可用成员时才会接受请求。

本文出自 “迷彩小蜗牛” 博客,请务必保留此出处http://cycool.blog.51cto.com/2443397/1568577

Nginx通过请求的URL做定向路由策略

标签:nginx   定向路由   nginx转发规则   负载   容灾   

原文地址:http://cycool.blog.51cto.com/2443397/1568577

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!