使用 外部lua 脚本为什么 nginx 一定要reload?

175 views
Skip to first unread message

Zoom.Quiet

unread,
Mar 7, 2012, 4:20:18 AM3/7/12
to open...@googlegroups.com
env:
- mac OS X 10.7.3
- ngx_openresty/1.0.10.48
配置:
...
location ~ ^/app/(.+) {
default_type 'text/plain';
lua_need_request_body on;
rds_json on;
client_max_body_size 50k;
client_body_buffer_size 50k;
content_by_lua_file /Users/zoomq/Works/lua/my_openresty/$1.lua;
}

使用 curl -d 127.0.0.1:9090/app/chk.lua
来测试访问;
- 每次修訂了 chk.lua 后
- 并没有变化,一定要 reload nginx 才成

有什么方式可以在开发阶段,自动 reload?

ps:
- 俺猜是 content_by_lua_file 加载的 lua 已经编译成 nginx 内部脚本了?
- 所以,无法自动加载变动后的?


--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/

smallfish

unread,
Mar 7, 2012, 4:21:46 AM3/7/12
to open...@googlegroups.com
文档地址:http://wiki.nginx.org/HttpLuaModule#lua_code_cache

默认lua_code_cache是开启的,即所有改动必须reload进程。

--
邮件自: 列表“openresty”,专用于技术讨论!
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
详情: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
建议: 提问的智慧 http://wiki.woodpecker.org.cn/moin/AskForHelp

agentzh

unread,
Mar 7, 2012, 4:30:19 AM3/7/12
to open...@googlegroups.com
On Wed, Mar 7, 2012 at 5:20 PM, Zoom.Quiet <zoom....@gmail.com> wrote:
> location ~ ^/app/(.+) {
> default_type 'text/plain';
> lua_need_request_body on;
> rds_json on;
> client_max_body_size 50k;
> client_body_buffer_size 50k;
> content_by_lua_file /Users/zoomq/Works/lua/my_openresty/$1.lua;

另外,值得一提的是,如果直接对外的话,这里的配置要记得检查 $1 的取值是否合法哦,以免文件路径被注入攻击了 :) 比如把 location
中的正则模式修改为 ^/app/(\w+) 会好很多。

Best,
-agentzh

Zoom.Quiet

unread,
Mar 7, 2012, 4:50:17 AM3/7/12
to open...@googlegroups.com
在 2012年3月7日 下午5:21,smallfish <smallf...@gmail.com> 写道:
> 文档地址:http://wiki.nginx.org/HttpLuaModule#lua_code_cache
>
> 默认lua_code_cache是开启的,即所有改动必须reload进程。
- 嗯嗯嗯,俺查阅的是 HttpLuaModuleZh
- 看了两遍,无法记住所有参数的含义,过眼没入心
- 实话,字母顺序的列出所有功能,真心不知道怎么取舍
- 因为刚刚开始,并不知道哪些功能,日常/建议 是怎么组合的,,,
开始入味了,,謝謝!

this faq had done ;-)

Reply all
Reply to author
Forward
0 new messages