Hello! 2012/5/26 Weiqiang <lwei...@gmail.com>: > 之前在openresty平台上做了一个用于PaaS平台的动态路由。现在产品即将发布。核心代码是用lua写的,这些代码并不打算开源。但由于现在lua代码都是明文,用户稍作分析,就能看到产品的代码。 > > 所以有没有办法避免此事呢?lua世界有没有类似php zend加密或者python的pyc字节码这样的机制呢? > Lua 世界有 Lua 字节码这样的东西 :) 不过 ngx_lua 目前的主流版本还没有加载 Lua 字节码的支持。bigplum 同学在他的分支里做了一些有趣的尝试,现引用他在微博上对他的尝试的说明: ”Simon李晓明:今天改了几行代码,让ngx_lua支持加载luac编译过的二进制文件。需要在lua代码的前后加上闭包“return function()” 和 "end",这个是ngx_lua机制所需要的,再用luac编译后添加到nginx.conf。http://t.cn/zOBX6Ed @agentzh“ 如果使用 LuaJIT 2.0 的话,则需要通过 LuaJIT 2.0 的 -b 命令行选项生成字节码,见官方文档: http://luajit.org/running.html#opt_b ngx_lua 模块官方的 Lua 字节码支持还需要和大家进行更多的讨论 :) bigplum 同学的做法暴露了 ngx_lua 内部加载 code chunk 的一些特殊的做法细节,如果用户代码在外部由用户编译为字节码之前未正确加上 return function() 和 end 前后缀,会导致难于调试的错误。 Regards, -agentzh
在 2012年5月26日 下午9:37,agentzh <age...@gmail.com> 写道: > 2012/5/26 Weiqiang <lwei...@gmail.com>: >> 之前在openresty平台上做了一个用于PaaS平台的动态路由。现在产品即将发布。核心代码是用lua写的,这些代码并不打算开源。但由于现在lua代码都是明文,用户稍作分析,就能看到产品的代码。 >> >> 所以有没有办法避免此事呢?lua世界有没有类似php zend加密或者python的pyc字节码这样的机制呢? >> > - openresty 解析 lua 是在服务端吼 - http 客户端有什么分析方法,可以获得 lua 源代码的? > Lua 世界有 Lua 字节码这样的东西 :) > > 不过 ngx_lua 目前的主流版本还没有加载 Lua 字节码的支持。bigplum 同学在他的分支里做了一些有趣的尝试,现引用他在微博上对他的尝试的说明: > > ”Simon李晓明:今天改了几行代码,让ngx_lua支持加载luac编译过的二进制文件。需要在lua代码的前后加上闭包“return > function()” 和 "end",这个是ngx_lua机制所需要的,再用luac编译后添加到nginx.conf。http://t.cn/zOBX6Ed > @agentzh“ > > 如果使用 LuaJIT 2.0 的话,则需要通过 LuaJIT 2.0 的 -b 命令行选项生成字节码,见官方文档: > > http://luajit.org/running.html#opt_b > > ngx_lua 模块官方的 Lua 字节码支持还需要和大家进行更多的讨论 :) bigplum 同学的做法暴露了 ngx_lua 内部加载 > code chunk 的一些特殊的做法细节,如果用户代码在外部由用户编译为字节码之前未正确加上 return function() 和 > end 前后缀,会导致难于调试的错误。 > > Regards, > -agentzh > > -- 人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦! 俺: http://about.me/zoom.quiet 文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
呵呵, 感谢, 我先研究研究