nginx中lua_nginx_module模块如何能在修改了lua文件后无需重启即可自动生效

Thomas-yang 发布于 2013/01/23 09:51
阅读 4K+
收藏 2

开源软件供应链点亮计划,等你来!>>>

RT

我希望在修改了某一个lua文件之后,无需reload,而是通过某个url让nginx自动清除某个lua文件的cache而重新去读取lua文件。

不知道我的描述够不够清楚,请各位大神帮帮忙

加载中
0
无名码农
无名码农
貌似要把cache关了吧,好像还没有自动检测文件并重新加载的功能的。
T
Thomas-yang
回复 @无名码农 : 请问有没有办法在nginx中遍历所有的lua 虚拟机 即遍历所有的lua State *L
无名码农
无名码农
回复 @Thomas-yang : 我的ngx_lua_module跟lua_ngx_module不一样。 你可以参考下我的: https://github.com/hehaiqiang/ngx_lua_module
T
Thomas-yang
回复 @无名码农 : 请问我现在在nginx的ngx_lua_module0.7.9的基础上修改,如何做到可以判断lua文件是否修改呢?我在拜读您的lua_ngx_module源码
T
Thomas-yang
回复 @无名码农 : 请问 你是怎么判断的呢,lua_nginx_module即使在修改了lua文件之后,依旧会去读取cache中的内容,而不会去读lua文件,如果是每次都去判断文件是否被修改,及将cache 置于off即可每次都去读文件这样带来的性能会查很多。 请问你是怎么做到的?
无名码农
无名码农
回复 @Thomas-yang : 是的。 我的ngx_lua_module是当收到请求时自动判断该脚本文件是否已经修改,然后重新加载并更新cache,其实你也可以按照这种方法去修改lua_nginx_module模块。
下一页
0
总会有无法选择的时候
总会有无法选择的时候
有权限的话 使用php执行相关命令就可以了
总会有无法选择的时候
总会有无法选择的时候
我也不太好解释,简单来说就是执行系统命令,比如win下的cmd这些,linux也一样可以使用php执行命令,但是可能会有安全问题
T
Thomas-yang
我想知道大概的思路是什么样的,怎么通过PHP来执行啊?个人觉得清楚cache是lua源码中的代码,PHP未必能与源码进行交互
0
pyruby
pyruby

引用来自“汪宪博”的答案

有权限的话 使用php执行相关命令就可以了
这个是lua code cache,和PHP一毛钱关系都没的。。 
pyruby
pyruby
回复 @Thomas-yang : 嗯,你们的核心技术,不透露算了把,呵呵
T
Thomas-yang
回复 @宝仔love : 没传,在公司写的,还是不传了
pyruby
pyruby
回复 @Thomas-yang : 厉害,请问兄弟你写的模块叫啥名字哈?github上有哇?
T
Thomas-yang
我已经实现了,通过编写ngx模块,通过lua来清除cache
0
pyruby
pyruby

引用来自“宝仔love”的答案

引用来自“汪宪博”的答案

有权限的话 使用php执行相关命令就可以了
这个是lua code cache,和PHP一毛钱关系都没的。。 
厉害,请问兄弟你写的模块叫啥名字哈?github上有哇?
0
x
xianguiquan
想法不错。开发 OpenResty lua模块是,不提示详细错误,请问怎样调试??
T
Thomas-yang
我采用的方法是查看源码和系统日志,调试
0
HelloBug
HelloBug
如何调试OpenResty中的Lua实战视频教程(第八课)  http://www.luachina.cn/?post=11
0
wujunwei928
wujunwei928

可以设置 lua_code_cache 参数
一般放在nginx.conf的http里面,设置lua程序是否缓存,默认是开启的,
开发模式关闭缓存即可:lua_code_cache off

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部