openresty 限流 (redis+lua) 备忘
来源:互联网 发布:软件工程软件开发方向 编辑:程序博客网 时间:2024/05/21 00:47
githunb上下载lua-resty-limit-traffic
解压到/usr/openv/servers/lualib/restylimit目录下。 servers 为openresty安装目录.
/usr/openv/servers/nginx/conf/lua目录
新建limit.lua
local limit_req = require "resty.limit.req" local redis = require "resty.redis" local instance = redis.new(); instance.connect(instance,'127.0.0.1','6379') local rate =tonumber(instance:get("limitrate")) local burst =tonumber(instance:get("limitburst")) --local rate=3 这里如果不用redis 可以直接使用rate=3进行赋值 --local burst =10 local error_status = 503 local nodelay = false local lim, err = limit_req.new("limit_req_store", rate, burst) if not lim then ngx.exit(error_status) end local key = ngx.var.binary_remote_addr local delay, err = lim:incoming(key, true) if not delay and err == "rejected" then ngx.exit(error_status) end if delay > 0 then if nodelay then else ngx.sleep(delay) end end
/usr/openv/servers/nginx/conf
lua.conf
server { listen 80; server_name _; location /limit { access_by_lua_file conf/lua/limit.lua; default_type 'text/html'; lua_code_cache off; content_by_lua 'ngx.say("hello world")'; # proxy_pass http://proxy/_cat/master; # proxy_redirect off; # proxy_set_header Host $http_host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header Cookie $http_cookie; }
}
/usr/openv/servers/nginx/conf
nginx.conf 中增加:
http { include mime.types; include lua.conf; default_type application/octet-stream; lua_package_path "/usr/servers/lualib/?.lua;;"; lua_package_cpath "/usr/servers/lualib/?.so;;"; lua_shared_dict limit_req_store 10m;
0 0
- openresty 限流 (redis+lua) 备忘
- 安装openresty+redis+lua
- nginx+lua+redis(openresty)配置
- nginx + lua + redis 防刷和限流
- openresty-redis
- OpenResty基于nginx的限流插件
- CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据
- openresty+lua+module
- openresty+lua+module(2)
- openresty+lua+module(3)
- Deploy openresty + lua + zabbix
- Openresty/Lua + Thrift + HBase
- 看看 Nginx + Lua (OpenResty)
- OpenResty+lua的方案
- lua之安装openresty
- Openresty (nginx + lua)
- Nginx+Lua(OpenResty) HelloWorld
- OpenResty(Nginx+Lua)
- Java实现简单的排序
- 前端 js 调试的方法
- Java面向对象(2)构造函数
- 周末晚会
- RandomAccessFile
- openresty 限流 (redis+lua) 备忘
- 在Mac系统下配置PHP运行环境
- 整数划分问题(用因式的方法)
- 关于网络传输数据安全探讨
- 机器视觉学习笔记-图像特征
- Xcode8打包ERROR 90682:"can't contain 16-bit or P3 assets if the app is targeting iOS releases earlier
- 排序算法分析
- 学习中遇到的问题:RemovedInDjango110Warning: SuppRemovedInDjango110Warning:
- Mybatis源码之Statement处理器StatementHandler(一)