lua入门与学习笔记

原文: https://blog.csdn.net/xyz_dream/article/details/102766332

由于nginx采用异步非阻塞io模型, 可以高效的处理并发请求,nginx还可以加入一些模块,其中就包括lua模块。 这个模块非常强悍和轻巧,犹如瑞士军刀,小巧精悍。nginx在做反向代理以及web服务器,是拿到http第一手源数据,那么我们可以在nginx这一块针对例如url转发,头信息过滤校验, referer校验, 反向代理拦截,安全校验,网关,认证等等。。。。通过加入lua模块,实现可编程的功能, 内置ngx的一些变量,让你能够拿到这些数据做一些业务逻辑。这种玩法比较流行的就是openresty, 针对lua模块做了很多封装,充分利用nginx异步非阻塞高性能特性, 站在巨人的肩膀上做开发,而不是让你自己去做出和nginx性能一样的软件然后自己再扩展。

openresty后面加入了一些玩法, 例如对于简单的业务,有人直接用nginx+lua的形式以及redis mysql完全就能把业务完成的同时,性能比nginx+php或者nginx+python等方式要高很多。 不过个人看法, openresty去做应用网关或者防火墙之类的相对比较多一些, 比较大工程也不是说lua做不了, 只是lua相对简洁, 没有很多成熟的web框架或者第三方库, 做起来没有像php python或者java得心应手。 一般还是在openresty做一些实际业务数据过滤处理,实际业务还是反向代理交给后端来做。

不过openresty虽然入门简单demo跑起来是没什么门槛,但是要想搞好还是有难度的。 首先你得对nginx非常了解,其次你对luaJIT技术也得非常了解。 本文记录了lua基本语法入门学习笔记, 我想后面可能对自己知识拓展有些用处。 lua语言简单,有脚本语言基础的同学一天真的就能掌握lua 80%以上的语法知识了,够用了。 后面花个一两天把标准库和常用第三方库看一看api就好了。

附上lua学习笔记:

lua学习笔记