Nginx + Lua + redis (一)(转)
使用 Lua 脚本语言操作 Redis。
由于大量的 Lua 代码写在 Nginx 中,会使配置文件显得很繁琐,所以这里使用 content_by_lua_file 来引入 Lua 脚本文件。
要使用 content_by_lua_file,需要安装 nginx_lua_module 模块。
安装介绍,猛击这里:nginx_lua_module
大神 章亦春 提供了一个很方便的开发包,如下:
- git clone https://github.com/agentzh/lua-resty-redis.git
该包中,有一个 Lib 目录,将 Lib 目录下的文件和子目录拷贝至目录 /data/www/lua
在 Nginx 配置文件中,需要加一行代码,以便引入 redis.lua。
注:加在 http 段里。
- lua_package_path "/data/www/lua/?.lua;;";
为了使得 lua 脚本的修改能及时生效,需要加入一行代码,如下:
注:在 server 段里,加入代码,如果不加此代码或者设置为 on 时,则需要重启 Nginx。
- lua_code_cache off;
在 Nginx 配置文件中,加入一个Location:
- location /lua {
- content_by_lua_file /data/www/lua/test.lua;
- }
注:引入 test.lua 脚本文件
Lua 脚本文件:test.lua。
- local redis = require "resty.redis"
- local cache = redis.new()
- local ok, err = cache.connect(cache, '127.0.0.1', '6379')
- cache:set_timeout(60000)
- if not ok then
- ngx.say("failed to connect:", err)
- return
- end
- res, err = cache:set("dog", "an aniaml")
- if not ok then
- ngx.say("failed to set dog: ", err)
- return
- end
- ngx.say("set result: ", res)
- local res, err = cache:get("dog")
- if not res then
- ngx.say("failed to get dog: ", err)
- return
- end
- if res == ngx.null then
- ngx.say("dog not found.")
- return
- end
- ngx.say("dog: ", res)
- local ok, err = cache:close()
- if not ok then
- ngx.say("failed to close:", err)
- return
- end
测试结果如下:
- [root@localhost conf]# curl http://localhost/lua
- set result: OK
- dog: an aniaml
http://blog.csdn.net/vboy1010/article/details/7892120
Nginx + Lua + redis (一)(转)相关推荐
- nginx lua redis 访问频率限制(转)
1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...
- nginx+lua+redis 灰度发布实现方案
背景: 公司要把现有的某传统项目进行微服务化,拆分后要分批次预发布,实现某部分使用户使用微服务模块,其他用户使用传统项目.待微服务稳定.无bug后全部用户迁移至微服务系统. 以上为背景,实现此方案使用 ...
- Nginx+Lua+Redis 对请求进行限制
Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...
- nginx+lua+redis deny ip
2019独角兽企业重金招聘Python工程师标准>>> nginx+lua+redis实现ip黑名单 1.安装LuaJIT LuaJIT LuaJIT即采用C语言写的Lua代码的解释 ...
- 利用nginx+lua+redis实现反向代理方法教程
这篇文章主要给大家介绍了利用nginx+lua+redis实现反向代理方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 前言 最近因为工作需要,要进行IVR的 ...
- windows下nginx+lua+redis实现短域名服务
nginx+lua+redis 环境搭建: 我使用的是大牛 ZhangYichun 提供的集成包快速安装. 非常简单,下载 ngx_openresty,该集成包中有:Nginx,Lua或Luajit, ...
- nginx+lua+redis实现降级
前言 商城或web站点的用户访问量出乎意料地增加了很多,超出了系统的负载能力, 系统有些扛不住,继而导致注 册,下单,支付什么的全部在绕圈卡住,继而导致公司业务损失了不少用户和订单.. 一.引子 面对 ...
- 基于abtest思想的流量切换(nginx lua redis)
使用前提: 项目重构了,旧项目还在线上运行,新项目准备替换线上的旧项目 最终目标: 要实现实时切换新旧项目,保证如果新项目上线后有问题,可以立刻快速的将流量切回旧项目 方案: 关于abtest的基本原 ...
- nginx+lua+redis实现post请求接口之黑名单(一)
一.概述 需求:所有访问/webapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器(Tomcat) 实现思路:通过在Nginx上 ...
最新文章
- CSS中的id选择器和class选择器简单介绍
- Win7 64位的SSDTHOOK(1)---SSDT表的寻找
- C语言数据结构(大话数据结构——笔记4)第六章:树
- c语言中的fock方法输出hello,涉及fork()的C程序输出的说明
- 「Swift」笔记第一章:The Basic
- Cucumber入门之_argument
- AS3 in FlashDevelop
- 计算机视觉实验数学形态学,计算机视觉形态学边缘检测.doc
- MySQL学习笔记:MySQL管理
- 我的第一篇Live Write 写的博客
- JavaScript 编程精解 中文第三版 十七、在画布上绘图
- 【libnice】艰难的meson+ ninja手动编译过,vs2022 v143 debug
- android视频教程_创建数据库与完成数据添删改查,17_创建数据库与完成数据添删改查...
- Python制作个人动漫头像(简化版)
- 开博2012在情人节!
- 35岁的网络工程师入行需要注意什么?
- 笔记本电脑黑屏 笔记本开机黑屏 笔记本黑屏怎么办
- 划重点!GDPR,阿里云的六问六答
- 这些夕阳产品的编程语言即将死去,有你学的吗?
- Linux单网卡双IP
热门文章
- 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
- 4天快速入门python数据挖掘_4天快速入门Python数据挖掘
- ppt设置外观样式_如何设置更符合需要的幻灯片背景?
- PaddlePaddle 中的若干基础命令中的问题
- 编程那么苦,学习那么累,这组漫画可以治愈(慢慢品味)
- 2021年春季学期-信号与系统-第十一次作业参考答案-第六小题
- 2021年春季学期-信号与系统-第七次作业参考答案-第八小题
- 第十五届全国大学生智能汽车竞赛 信标组亮灯顺序和次数
- AD5933不同频率下的转换结果
- 工行服务器维护时间,工行服务器安全链接