Nginx+ lua实现http转发请求
最近要使用nginx+lua实现 一个需求:
在nginx的location部分,请求时,判断用户是否为会员,如果是会员,则跳转到a页面,否则跳转到b页面。
用户服务是一个单独的服务,具体lua脚本实现代码如下:
upstream tuc_sgin {server 127.0.0.1:9806;server 127.0.0.1:9807;
}location /tuc_sgin_proxy/ {add_header Access-Control-Allow-Origin *;proxy_pass http://tuc_sgin/;
}#如果vip_status=1跳转到id=35的页面,否则跳转到id=34的页面
location /sgin_valuable/ {add_header Access-Control-Allow-Origin *;proxy_pass https://127.0.0.1:9808/test/news/spread.html?id=35;rewrite_by_lua 'local cjson = require("cjson");local request_method = ngx.var.request_methodlocal args = nilif "GET" == request_method thenargs = ngx.req.get_uri_args()elseif "POST" == request_method thenngx.req.read_body()args = ngx.req.get_post_args()endlocal id = args["id"];if id == nil or id == "" thenreturn ngx.redirect("https://127.0.0.1:9809/test/news/spread.html?id=34");end local res = ngx.location.capture("/tuc_sgin_proxy/tuc/social? serviceType=query_userextSingle", {method = ngx.HTTP_GET, args = args})local result = cjson.decode(res.body);if result["error_no"] == "0" thenlocal vip_status = result["data"]["vip_status"];if vip_status ~= "1" thenreturn ngx.redirect("https://127.0.0.1:9809/test/news/spread.html?id=34");endelseif result["error_no"] ~= "0" thenreturn ngx.redirect("https://127.0.0.1:9809/test/news/spread.html?id=34");end';
}
Nginx+ lua实现http转发请求相关推荐
- nginx+lua+redis实现post请求接口之黑名单(一)
一.概述 需求:所有访问/webapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器(Tomcat) 实现思路:通过在Nginx上 ...
- Nginx + Lua 请求解析并转发请求
关键词: nginx + lua 脚本 lua 获取 http 请求参数 lua + cjson 的使用 lua + resty.http 发送 http 请求 resty.http 与 socket ...
- Nginx+Lua+Redis 对请求进行限制
Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...
- 阿里云服务器安装并配置nginx代理转发请求
阿里云服务器安装并配置nginx代理转发请求 下载nginx安装包,或者上传nginx安装包,此处我用的是Xmanager工具从本地上传了一个nginx安装包. 安装依赖库 yum -y instal ...
- 在Nginx中让所有HTTP请求转发到HTTPS
title: 在Nginx中让所有HTTP请求转发到HTTPS date: 2017-10-23 20:50:24 tags: nginx http https categories: 运维 背景 在 ...
- 用Nginx+Lua(OpenResty)开发高性能Web应用
在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...
- 第二章 OpenResty(Nginx+Lua)开发入门
Nginx入门 本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章: nginx启动.关闭.重启 http://www.cnblogs.com/derekchen/archi ...
- 使用Nginx+Lua(OpenResty)开发高性能Web应用
在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...
- 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...
最新文章
- linux使用世界时间,linux世界里的时间
- Java 理论与实践: 正确使用 Volatile 变量
- mysql 主从配置
- document.execCommand()方法处理Html数据
- python【数据结构与算法】二分归并模版
- 习惯的力量之五让迟延见鬼去吧
- tracert和traceroute使用
- 全球顶级大学,在中国录取率却不足0.5%,答案一针见血!
- P4492-[HAOI2018]苹果树【dp】
- JSLint检测Javascript语法规范
- Windows 操作小技巧 之一(持续更新)
- 关于移动安全的一点总结
- 深入理解目标检测与YOLO(从v1到v3)
- ASP.NET中 CheckBox(复选框)的使用
- MySQL数据备份与IDE工具介绍
- Hexo next 主题加载自定义 js 文件
- 智能鱼塘远程检测控制系统
- qq不显示我的android手机,qq2013不显示手机在线怎么办
- char **argv什么意思呢
- 分布式系统数据层设计模式