43221321 发表于 2017-3-8 13:27:38

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

Nginx通过客户端的APP版本号来判定跳转后台对应的版本号的服务器,配置如下: upstream appserver{       server 10.9.14.1:799weight=5;   }    server {       listen 80;       server_name uatv2.yaok.com;       charset utf-8;       access_loglogs/uat.yaok.com.loglogstash_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有这个接口


hanghang123 发表于 2017-3-9 12:03:46

{:6_388:}
页: [1]
查看完整版本: Nginx根据客户端版本号跳转至后台相应服务器