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 ;
                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 ;
                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状态码。
因为两个版本的接口不一样,所以返回的状态码不一样
CentOS 7下Nginx服务器的安装配置
CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP)
Linux下安装PHP环境并配置Nginx支持php-fpm模块
Ubuntu 16.04上启用加密安全的Nginx Web服务器

