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 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状态码。

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

时间: 2024-10-29 10:46:15

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

Nginx之隐藏版本号,优化缓存,日志分割

nginx之隐藏版本号 配置nginx [[email protected] ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包 [[email protected] ~]# useradd -M -s /sbin/nologin nginx ##创建程序性用户 [[email protected] ~]# mkdir /chen ##创建挂载点 [[email protected] ~]# mount.cifs //192.

客户端发现_观影团活动页面开发与客户端新版跳转测试页面开发项目总结

   这一周过的是我理想的实习状态,手头有项目则忙项目,没项目则提高基础技能.那么下面来看看这周做的活动页面效果吧. 项目介绍 (一).观影团活动页面的开发 本项目页面的开发基本都是用之前用过的技术,不同之处在于乐帝之前的开发处于懵懂状态,现在回头看还是有些许的提高,对页面每一行代码都知道来龙去脉,弹出窗.对齐.居中布局都从本周阅读<前端开发修炼之道>有了更深层次的认识.css对齐与居中布局都不是单独属性完成的,而是有关联及触发的,而之前写页面不理解的恰恰是属性间的触发关系. 这里拿弹出窗的构

nginx ---refine---按需时间/流量进行调整后台服务器---geocity

nginx --按需时间/流量进行调整后台服务器 http://linux.it.net.cn/CentOS/course/2015/0913/17044.html http://www.cnblogs.com/paddygege/p/7007085.html  nginx-geocity

Nginx 向客户端输出真实的后端IP地址

因为涉及到内外网的改造,所以狠多东西现在需要依赖于openresty来做总控实现.然后就碰见了一个比较难办的问题,即在upstream时候,如何获取实际处理请求的server地址.假设有如下upstream配置: upstream backend { server 127.0.0.1:88882 server 127.0.0.1:88892 } location /test { proxy_pass http://backend2 } 当我请求test的时候,我同时想直到到底是backend的哪

Java实现Android客户端版本号比较

目录 目录 前言 关键点 Java代码实现 前言 早上看了一下CSDN博客排名,本周最高排名的文章是:Java实现比较版本号.个人认为这篇文章写的不错,因为Android客户端系统中经常用到版本号比较功能,特别是在应用自升级的情况下. 原博主之所以写这篇文章,是因为考虑到大部分Java程序员可能会采用compareTo这种不靠谱的API调用或者不规则的版本号名称. 而我写这篇文章,是由于对ACM题目的推崇和补充一下原博主代码中考虑不够周全的情况. 关键点 这里,分两个问题来说明一下客户端版本号比

java比较客户端版本号

参考文章:http://www.jb51.net/article/70317.htm 关键点 为什么不能使用String.compareTo方法来比较客户端版本号? 举个例子,之前客户端版本号为:9.9.9,而服务器端最新的客户端版本号为:10.0.1,虽然10.0.1明显高于9.9.9,但是按照compareTo方法,这个9.9.9是大于10.0.1的,导致客户端版本号比较错误. Java代码实现 public class CompareVersion { public static void

隐藏Nginx和PHP版本号

OS:CentOS release 6.9 (Final) 任务:隐藏Nginx.PHP版本号 [[email protected] html]# curl  -I  101.132.79.69/ HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Mon, 16 Apr 2018 03:26:32 GMT Content-Type: text/html Connection: keep-alive X-Powered-By: PHP/5.3.27 隐藏Ngin

nginx实现多语言跳转不同的url

nginx实现多语言跳转不同的url server { listen 80; server_name www.text.com; location / { if ($http_accept_language ~* ^zh) { set $lang zh_CN; rewrite (.*) https://www.baidu.com$1 permanent; break; } if ($http_accept_language ~* ^ko) { set $lang ko_KR; rewrite (

关于 Des加密(Android与ios 与后台java服务器之间的加密解密)

关于 Des加密(Android与ios  与后台java服务器之间的加密解密) http://blog.sina.com.cn/s/blog_7c8dc2d50101id91.html (2013-04-17 11:47:23)   分类: iPhone开发 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,登录的密码要用DES加密,服务器是用Java开发的,客户端要同时支持多平台(Android.iOS),在处理iOS的DES加密的时候遇到了一些问题,起初怎么调都调不