码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx根据客户端版本号跳转至后台相应服务器

时间:2017-03-07 23:18:51      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:服务器   listen   server   版本号   客户端   

 Nginx通过客户端的APP版本号来判定跳转后台对应的版本号的服务器,配置如下: 

upstream appserver{

       server 10.9.14.1:799  weight=5;

     }

    server {

       listen 80;

       server_name uatv2.yaok.com;

       charset utf-8;

       access_log  logs/uat.yaok.com.log  logstash_json;

       location ^~ /appapi/ {

               set $newIp "10.7.4.49:8180";   

               if ($http_appVersion  = "1.4.0"){

                  set $newIp "10.9.54.128:799";

               } 

#以上代码意思是,如果客户端版本是1.4.0,则跳转至10.9.54.128:799,否则跳转至10.7.4.49:8180这台服务器

                proxy_pass "http://$newIp";

                proxy_redirect off;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       }

       location ^~ /pay/ {

                proxy_pass http://appserver/pay/;

                proxy_redirect off;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

        location ^~ /uploadapi/ {

                proxy_pass http://appserver/uploadapi/;

                proxy_redirect off;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

        location / {

           rewrite ^/(.*)$ //$1 last;

       }

#这段要放在未尾才能跳转成功

    }

检查结果:

技术分享

版本为1.4.0的返回的状态码为200,1.4.0有这个接口

技术分享

版本不是为1.4.0的返回404状态码。

因为两个版本的接口不一样,所以返回的状态码不一样

Nginx根据客户端版本号跳转至后台相应服务器

标签:服务器   listen   server   版本号   客户端   

原文地址:http://536410.blog.51cto.com/526410/1904073

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