最近要使用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转发请求相关推荐

  1. nginx+lua+redis实现post请求接口之黑名单(一)

    一.概述 需求:所有访问/webapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器(Tomcat) 实现思路:通过在Nginx上 ...

  2. Nginx + Lua 请求解析并转发请求

    关键词: nginx + lua 脚本 lua 获取 http 请求参数 lua + cjson 的使用 lua + resty.http 发送 http 请求 resty.http 与 socket ...

  3. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  4. 阿里云服务器安装并配置nginx代理转发请求

    阿里云服务器安装并配置nginx代理转发请求 下载nginx安装包,或者上传nginx安装包,此处我用的是Xmanager工具从本地上传了一个nginx安装包. 安装依赖库 yum -y instal ...

  5. 在Nginx中让所有HTTP请求转发到HTTPS

    title: 在Nginx中让所有HTTP请求转发到HTTPS date: 2017-10-23 20:50:24 tags: nginx http https categories: 运维 背景 在 ...

  6. 用Nginx+Lua(OpenResty)开发高性能Web应用

    在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...

  7. 第二章 OpenResty(Nginx+Lua)开发入门

    Nginx入门 本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章: nginx启动.关闭.重启 http://www.cnblogs.com/derekchen/archi ...

  8. 使用Nginx+Lua(OpenResty)开发高性能Web应用

    在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...

  9. 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...

最新文章

  1. linux使用世界时间,linux世界里的时间
  2. Java 理论与实践: 正确使用 Volatile 变量
  3. mysql 主从配置
  4. document.execCommand()方法处理Html数据
  5. python【数据结构与算法】二分归并模版
  6. 习惯的力量之五让迟延见鬼去吧
  7. tracert和traceroute使用
  8. 全球顶级大学,在中国录取率却不足0.5%,答案一针见血!
  9. P4492-[HAOI2018]苹果树【dp】
  10. JSLint检测Javascript语法规范
  11. Windows 操作小技巧 之一(持续更新)
  12. 关于移动安全的一点总结
  13. 深入理解目标检测与YOLO(从v1到v3)
  14. ASP.NET中 CheckBox(复选框)的使用
  15. MySQL数据备份与IDE工具介绍
  16. Hexo next 主题加载自定义 js 文件
  17. 智能鱼塘远程检测控制系统
  18. qq不显示我的android手机,qq2013不显示手机在线怎么办
  19. char **argv什么意思呢
  20. 分布式系统数据层设计模式

热门文章

  1. QQ邮箱下载想图书馆借的电子教材下载不了
  2. 大数据,并非越大越好?
  3. Python3 assert函数
  4. Arcface人脸识别算法流程分析
  5. 7.添加Acceptor class
  6. html量子效果,HTML5/Canvas量子隐形传输动画
  7. 利用通道混合器调整图像
  8. 我的难题(基于分析泰坦尼克号事件)
  9. 光与夜之恋服务器维护中,光与夜之恋2021年8月5日停服维护说明 光与夜之恋停服维护内容有哪些?...
  10. 网易python笔试题_python 饥饿的小易(网易笔试题)