Public Repository

Last pushed: 5 months ago
Short Description
非侵入式&基于openresty+redis实现实时接口缓存。
Full Description

基于openresty接口缓存

项目构成: 前端 entry.lua 位置 /usr/local/openresty/nginx/lua/

               后端 work.lua 位置 /usr/local/openresty/nginx/lua/

依赖类 :
backend.lua 请求后端类
cache.lua 缓存类
interface.lua 接口类
queue.lua 队列类
dispatch.lua 控制类
位置 /usr/local/openresty/lualib/resty/

原理 :前端:入口主要根据请求路径判断是否返回redis缓存数据,或者转发到真实后端。最终像用户返回数据。
后端:通过work.lua加入后端进程,通过c.sh循环调用接口的访问
当前端有访问的时候,会将访问的接口push到队列,work将解析队列数据更新缓存,并修剪队列。

使用:
run docker:
docker run -dit -v /you_file_path:/docker_file_path -p 8000:80 mslinji/openresty
into docker:
docker exec -it container_id sh
1.修改/usr/local/openresty/lualib/resty/interface.lua中的配置backend指定到需要代理的后端,
修改cache_api table中需要缓存接口
2.启动redis, redis-server &
3.开发环境开启nginx中的对应的lua_code_cache,正式环境请关闭。
4.启动/usr/local/scripts/c.sh &

日志文件路径:
/usr/local/openresty/nginx/logs

Docker Pull Command
Owner
mslinji

Comments (0)