开发者社区> 问答> 正文

如何能在修改了lua文件后无需重启即可自动生效:报错

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

RT

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

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

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

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

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

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

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

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

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

    2020-06-07 14:11:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载