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有这个接口
|