lua_code_cache开关

来源:互联网 发布:淘宝免单吧 编辑:程序博客网 时间:2024/04/27 13:40

synatax: lua_code_cache on | off
default:lua_code_cache on
context: http, server, location, location if
作用:它为 *_by_lua_file(如 set_by_lua_file 和 content_by_lua_file) 这些指令以及Lua模块, 开启或关闭Lua代码缓存。

  1. 如果设置lua_code_cache off(关闭),则每个ngx_lua处理的请求将运行在一个独立的Lua VM实例里,0.9.3版本后有效。这样set_by_lua_file, content_by_lua_file, access_by_lua_file, 等等指令引用的Lua文件将不再缓存到内存, 并且所有Lua模块每次都会从头重新加载。这样开发者就可以避免改代码然后重启nginx的操作。但是, 那些直接写在 nginx.conf 里的代码比如由 set_by_lua, content_by_lua, access_by_lua, and rewrite_by_lua 指定的代码不会在你编辑他们时实时更新。
  2. 如果设置lua_code_cache on(默认),那些*_by_lua_file指令里由 dofile 或 loadfile 加载的Lua文件也无法被缓存 (除非你自己手动缓存了他们)。 通常你可以用 init_by_lua 或 init_by_lua_file 其中一种指令来加载所有这些无法被缓存 的文件,或把这些文件做成真正的Lua模块并用require加载。

使用生产环境下千万别关闭Lua代码缓存,只能用在开发模式下,因为对性能有十分大的影响(每次IO读取和编译Lua代码消耗很大, 简单的hello world都会慢一个数量级)。

0 0
原创粉丝点击