Openresty资料之配置指令,


◆ lua_package_path/lua_package_cpath

这两个指令以字符串的形式确定Lua库和so库的查找路径,文件名使用“?”作为通配符,多个路径使用“;”分隔,默认的查找路径用“;;”

指令里还可以使用特殊变量“$prefix”,表示OpenResty 启动时的工作目录(即“-p ”参数指定的目录)

lua_package_path "$prefix/service/?.lua;;";
lua_package_cpath "$prefix/service/lib/?.so;;";

我们不需要在指令里刻意指定OpenResty 的安装目录,这是因为在安装时OpenResty己经默认内置了自己的查找目录:

/usr/local/openresty/lualib/?.lua
/usr/local/openresty/site/lualib/?.lua
/usr/local/openresty/lualib/?.so
/usr/local/openresty/site/lualib/?.so

◆ lua_code_cache on I off

这个指令会启用OpeηRe sty 的Lua 代码缓存功能,源码文件里的Lua 代码被LuaVM 加载后就被缓存起来,仅会读取一次,减少了磁盘读写也就加快了运行速度。lua_code_cache的默认值是on,通常不建议使用off关闭,这将大大降低Ope nResty的性能。只有在一种情况下可以设置为off ,那就是调试程序的时候。

在调试时我们会经常修改Lua 代码,如果lua_code_cache是on状态,因为代码已经在应用启动时读取并缓存,修改后的代码就不会被OpenResty 载入,修改也不会生效,只能使用“-s reload ”的方式强制让OpenResty重新加载代码。如果修改的比较频繁,那么反复这样的操作就很麻烦,把缓存关闭可以让OpenResty每次处理请求时自动载入修改后的代码,节约一些调试的时间。

但lua_code_cache off 用在调试时也有一些限制,它对直接写在配置文件里的Lua代码,或者被“ init_by_lua_file/init_worker_by_lua_file”加载的Lua 代码无效(都是在启动时一次性加载的),这时仍然要使用“-s reload ”的方式。

相关内容

    暂无相关文章