nginx+lua实现一级缓存

568 阅读1分钟

1. 几个比较重要的lua挂载点

  • init_by_lua:指定系统启动时调用的 Lua 脚本;
  • init_worker_by_lua:指定 Worker 进程启动时调用的 Lua 脚本;
  • set_by_lua:Nginx 变量使用复杂的 lua return;
  • rewrite_by_lua:指定重写 URL 规则的 Lua 脚本;
  • access_by_lua:指定权限验证阶段的 Lua 脚本;
  • content_by_lua:指定内容输出节点的 Lua 脚本;

2. shared_dict

在nginx自定义出一块shared_dict的内存空间,再通过lua脚本对这块内存空间进行读写。

lua_shared_dict my_cache 128m;

3. 在nginx.conf中指定一个location

location /staticitem/get{
            default_type "text/html"; 
            content_by_lua_file  ../lua/staticitem.lua;
        }

这段的意思是当访问/staticitem/get路径时回去执行staticitem.lua脚本。lua脚本里的逻辑是去shared_dict里查找,若没有则通过后端服务查询,然后将内容呢再放入shared_dict。