LUA-WEB开发的新方向
近期一个项目上,我写了一个简单的PHP开发框架,在这个框架基础上已经做了两个版本的开发,第二个版本是Flash+PHP。其中主要应用到的是JSON-RPC接口部分,PHP要做的基本就是数据逻辑处理方面的工作了。因为有了点经验,所以我就想是否可以从PHP换到LUA类的语言上做WEB开发。
查看过不少的资料,发现LUA会是一个很好的选择。我看中它的原因就在于LUA跟C的无缝配接上,C与LUA上的代码方法都可以互相调用、共享数据。并且我在去年就自己写了一个WEB SERVER程序,我可以比较简单的在原来的基础上集成对LUA的支持。但也有一个大的问题存在,LUA在WEB应用上的开发资料非常少,国内甚至没有什么WEB项目是使用LUA进行开发的,也许有很多东西需要自己去摸索。据我了解的有lighttd是支持FastCGI模式调用LUA,apache也有个mod_lua,但Nginx方面的资料我就没找着 _-!! (我很喜欢用Nginx来做WEB SERVER和Proxy,它真的很强大)当然还有一写直接就使用LUA来写的WEB SERVER,但考虑到LUA的Socket库不支持epoll,担心性能有问题。
so~我就着手自己弄个LUA SERVER吧
下面是这个LUA SERVER的业务处理流程图:

最上级的还是Nginx,它的主要作用是负责负载均衡、访问过滤和静态文件访问等服务。接下来就是核心LUA SERVER,这里不仅是一个WEB SERVER,同时这也是一个LUA的WEB开发框架的核心,使用多进程和多线程互相配合的模式提供Server服务,里面还包括了MySQL的Connect pool和Memcache的Connect pool,pool 是JAVA开发里面经常用到的,但PHP就因为没有多线程,就无法实现。
接下来的是一个Controller负责业务处理的调度。还包括一个Template engine(废话,WEB开发没一个好的模板引擎会很累的)
剩余的就是WEB项目里面的业务处理程序咯,这没啥好说滴。我的经验是,这类代码最多使用的是 if、for和数据库操作之类的处理了。所以说要拿什么语言来开发WEB都行~能连数据库都搞定了。BASE语言也可以写CGI~囧~
现在LUA SERVER的基础模型已经写好了,经过一些简单的压力测试,LUA的性能大概是PHP的1~2倍,很牛!我得尽快把它好好完善起来
放到实际业务上。嘿嘿~完~
快速链接:http://oneoo.com/go/642553.html
八月 28th, 2009 at 5:38 下午
强烈建议开源
九月 29th, 2009 at 8:30 下午
呵呵,让更多的LUAer加入到开发团队中来。。。。
十月 13th, 2009 at 5:46 下午
对lua语言的应用很感兴趣
lua的那个kepler项目 号称在路由上都可以跑
另外我觉得lua的好处在于小巧 并且虚拟机很安全 可以用来做象
google appenigine那样的服务的应用语言
appengine用的是标准python可是io方面没有写的功能
这就修改了标准python
如果用lua 那就好多了 io也是个附加库 直接拿掉既可
还有就是希望能开源
十月 16th, 2009 at 10:52 上午
太赞了。强烈建议开源。