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

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状态码。
因为两个版本的接口不一样,所以返回的状态码不一样

Nginx 403 forbidden的解决办法 

CentOS 7下Nginx服务器的安装配置 

CentOS上安装Nginx服务器实现虚拟主机和域名重定向 

CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP) 

Linux下安装PHP环境并配置Nginx支持php-fpm模块 

Nginx服务的SSL认证和htpasswd认证 

Ubuntu 16.04上启用加密安全的Nginx Web服务器 

Linux中安装配置Nginx及参数详解 

Nginx日志过滤 使用ngx_log_if不记录特定日志

CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配置 

CentOS6.9编译安装Nginx1.4.7 

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b4017db2cf9260562bf3fb122b12728e.html