Nginx根据用户请求的不同参数返回不同的json值
用户请求url:http://localhost:8000/getconfig?v=1.03.01,根据参数v=1.03.01或者其他的值返回不同的json值。如果用户请求不带该参数,则返回默认的json值。
下面是nginx.conf的配置:
server {
listen 8000;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main; location ~ ^/getconfig {
default_type application/json;
if ( $query_string ~* ^(.*)v=1.03.01$ ){
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock000/","h5":"http://118.31.69.127:8090/","phone":"4000670019","cr":"Copyright xxxxx"}}';
}
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock000/","h5":"http://118.31.69.127:8090/","phone":"4000670019","cr":"Copyright xxxxx"}}';
}
}
用户请求http://localhost:8000/getconfig时,应该返回
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock000/","h5":"http://118.31.69.127:8090/","phone":"4000670019","cr":"Copyright xxxxx"}}';
浏览器模拟请求:http://localhost:8000/getconfig
浏览器请求:http://localhost:8000/getconfig?v=1.03.01时:
可以满足需求,当有多个参数值的时候,本人没有想出来别的更好的办法,本来以为可以使用if else或者if else if的,结果我在测试的时候配置检查都不通过,没办法就采用了下面的办法:
server {
listen 8000;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main; location ~ ^/getconfig {
default_type application/json;
if ( $query_string ~* ^(.*)v=1.03.01$ ){
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock000/","h5":"http://118.31.69.127:8090/","phone":"4000670019","cr":"Copyright xxxxx"}}';
}
if ( $query_string ~* ^(.*)v=1.03.02$ ){
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock122/","h5":"http://118.31.69.127:8092/","phone":"40006700191222","cr":"Copyright xxxxx1222"}}';
}
return 200 '{"status": "0","message": "OK","body": {"api":"http://116.62.113.124:8080/basestock000/","h5":"http://118.31.69.127:8090/","phone":"4000670019","cr":"Copyright xxxxx"}}';
}
}
请求http://localhost:8000/getconfig?v=1.03.02:
虽然也可以达到目的,但是感觉特别low,希望哪位大神有别的比较高端的解决方法可以指导一下 ^=^!
Nginx根据用户请求的不同参数返回不同的json值的更多相关文章
- Nginx记录用户请求Header到access log
为了统计和其它用途,经常有人需要自定义Nginx日志,把http请求中的某个字段记录到日志中,刚好在看lua+nginx的文章,第一想到的是用lua赋值来做,但是想想有点小恶心,于是Google了一番 ...
- .NET 构造Class返回多个json值
上次总结使用DataTable返回多个值,后来看到一个小哥的返回方式和我的有所不同,便留意了一下.原来他构造一个Class,而我构造的是一个Table. 首先说说两者的区别:拿student举例,st ...
- .NET 构造DataTable返回多个json值
有时候我们使用Ajax链接一般处理程序需要返回多个值,然而这些数据并非在一个查询表内,此时便想到构造一个虚拟的DataTable,这样就可以返回多个值了(当然有很多办法,这是其中一种 ). 首先我们需 ...
- Action参数和View、Json、重定向
一.Action 1.Action参数: 普通参数.Model类.FormCollection (1).普通参数 Index(string name,int age) 框架会自动把用户请求的Que ...
- Mysql 返回JSON值属性的函数 (五)
本节中的函数返回JSON值的属性. JSON_DEPTH(json_doc) 返回JSON文档的最大深度.NULL如果参数为,则 返回 NULL.如果参数不是有效的JSON文档,则会发生错误. 一个空 ...
- 【Nginx】处理用户请求
实际处理请求的方法ngx_http_mytest_handler(在配置配置项的回调方法中被调用(用于解析配置项))将接收一个ngx_http_request_t类型的参数,返回一个ngx_int_t ...
- 为什么返回的数据前面有callback? ashx/json.ashx?的后面加 callback=? 起什么作用 js url?callback=xxx xxx的介绍 ajax 跨域请求时url参数添加callback=?会实现跨域问题
为什么返回的数据前面有callback? 这是一个同学出现的问题,问到了我. 应该是这样的: 但问题是这样的: 我看了所请求的格式和后台要求的也是相同的.而且我也是这种做法,为什么他的就不行呢? ...
- SpringMVC源码学习:容器初始化+MVC初始化+请求分发处理+参数解析+返回值解析+视图解析
目录 一.前言 二.初始化 1. 容器初始化 根容器查找的方法 容器创建的方法 加载配置文件信息 2. MVC的初始化 文件上传解析器 区域信息解析器 handler映射信息解析 3. Handler ...
- 阿里云openssl升级,实现nginx主动推送,nginx主动推送能够有效减少不必要的报文传输,减少用户请求次数,以达到更快访问速度
现有版本检查 [root@node3 ~]# openssl version #这个版本是无法支持http2.0主动推送功能.需要升级为2019版本. OpenSSL 1. ...
随机推荐
- mongodb(二)
数据准备: var persons = [{ name:"jim", age:25, email:"75431457@qq.com", c:89,m:96,e: ...
- 【转】Unity3d:读取FBX中的动画
从模型中获得切割好的动画clip,并且对其中设置好的动画事件进行修改方法: 1.动画模型后缀为.FBX.在Unity3d中,能够显示FBX中的动画.要加载模型中的AnimationClip,只要Ass ...
- STL - Vector迭代器简单应用之计算元素和
Description 用vector向量容器装入10个整数,然后,使用迭代器iterator和accumulate算法统计出这10个元素的和 Solution #include "stda ...
- Python实现七牛云视频播放
这篇文章是使用Python的Web框架Django Rest Framework来提供视频相关的api接口,主要功能包括视频上传.视频转码.视频访问授权.删除视频文件.视频截图功能. 七牛云上的基本概 ...
- Logging模块总结 2018/5/30
日志的级别 Level 用处 数字级别 DEBUG 详细的信息,在调试过程中用于诊断错误 10 INFO 用于确认事件正在运行 20 WARNING 意外发生时予以提醒,或者预测一些未来可能发生的一些 ...
- jsp table td自动换行
<TABLE style="word-wrap: break-word; word-break: break-all;">
- java 蓝桥杯算法提高 _3K好数
nums[i][j] 存的是i位数的时候,首位数字是j的K好数的数目,i从1位开始的结果,去算2位时的结果,去算3位时的结果...最后得到l位的结果.K进制只是一个范围. import java.ut ...
- Zookeeper的基本概念和重要特性
目录 1. 什么是Zookeeper 2. Zookeeper集群角色 3. Zookeeper的数据模型 3.1 Znode的类型 3.2 Znode的结构 4. Zookeeper的事件监听机制 ...
- ZPL语言说明文档
■格式命令(format commands) 以︿开始 用于设定标签格式与数据 多条格式指令按顺序执行 ■控制指令(control commands) 以~开始 迫使打印机立即执行某一个指令的操作 可 ...
- js 数字游戏
在某网站看到一道js题,觉得有点意思 Some numbers have funny properties. For example: 89 --> 8¹ + 9² = 89 * 1 695 - ...