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
- 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
>
> --
> 邮件自: 列表“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
> 教程: http://agentzh.org/misc/nginx/agentzh-nginx-tutorials-zhcn.html
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
呵呵, 感谢, 我先研究研究