Nginx+Lua
来源:互联网 发布:中国网络歌曲 编辑:程序博客网 时间:2024/05/20 14:42
https://github.com/openresty/lua-nginx-module
1、Nginx优点
Nginx设计为一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,而且每个工作进程采用了非阻塞I/O来处理多个连接,从而减少了线程上下文切换,从而实现了公认的高性能、高并发;因此在生成环境中会通过把CPU绑定给Nginx工作进程从而提升其性能;另外因为单线程工作模式的特点,内存占用就非常少了。
Nginx更改配置重启速度非常快,可以毫秒级,而且支持不停止Nginx进行升级Nginx版本、动态重载Nginx配置。
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
Nginx模块也是非常多,功能也很强劲,不仅可以作为http负载均衡,Nginx发布1.9.0版本还支持TCP负载均衡,还可以很容易的实现内容缓存、web服务器、反向代理、访问控制等功能。
2、Lua的优点
Lua是一种轻量级、可嵌入式的脚本语言,这样可以非常容易的嵌入到其他语言中使用。
http://baike.baidu.com/link?url=fl_I7Z7xgXbxFs2-O0z64LUhW8NGuel8U3VcAKItB0XuR1Ia9oV9n4APamTMlaQKQ59A_AP5Z6ySwsNcM2_Qkq
另外Lua提供了协程并发,即以同步调用的方式进行异步执行,从而实现并发,比起回调机制的并发来说代码更容易编写和理解,排查问题也会容易。Lua还提供了闭包机制,函数可以作为First Class Value 进行参数传递,另外其实现了标记清除垃圾收集。
因为Lua的小巧轻量级,可以在Nginx中嵌入Lua VM,请求的时候创建一个VM,请求结束的时候回收VM。
3、什么是ngx_lua
ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用脚本,部署到Nginx中运行,即Nginx变成了一个Web容器;这样开发人员就可以使用Lua语言开发高性能Web应用了。
https://github.com/openresty/lua-nginx-module#init_by_lua
ngx_lua提供了与Nginx交互的很多的API,对于开发人员来说只需要学习这些API就可以进行功能开发,而对于开发web应用来说,如果接触过Servlet的话,其开发和Servlet类似,无外乎就是知道接收请求、参数解析、功能处理、返回响应这几步的API是什么样子的。
4、什么是OpenResty
OpenResty 是一个nginx和它的各种三方模块的一个打包而成的软件平台。最重要的一点是它将lua/luajit打包了进来,使得我们可以使用lua脚本来进行web的开发。有了lua,我们可以借助于nginx的异步非阻塞的功能,达到使用 lua 异步并发访问后端的 MySQL, PostgreSQL, Memcached, Redis等等服务。特别是特有的 ngx.location.capture_multi 功能让人印象深刻,其可以达到极大的减少浏览器的http连接数量,并且可以异步并发的访问后台 Java/PHP/Python 等等接口。OpenResty 架构的web可以轻松超越Node.js的性能,并且对后端语言没有限制,你可以使用Java/PHP/Python等等各种语言。OpenResty(nginx+lua)可以替代node.js的前端渲染的功能。
5、我们用Lua干了什么事
用Lua替换之前的方式
a1.sources.r1.type = execa1.sources.r1.command = tail -F /var/log/secure
- nginx + lua
- nginx lua
- Nginx Lua
- nginx lua
- Nginx+Lua
- nginx lua
- nginx+lua
- nginx lua
- nginx lua
- nginx lua
- Nginx模块-lua-nginx-module
- 【nginx】nginx介绍-集成lua
- [译]NGINX和LUA
- Nginx与Lua
- [译]Nginx和Lua
- nginx+lua+redis
- Nginx与Lua
- Nginx,Lua的结合
- gulp简易使用教程
- 面试遇到的问题
- spark性能调优之调节数据本地化等待时长
- Dictionary字典的用法及用途原理
- 织梦pc端与手机端统一后台的解决方案
- Nginx+Lua
- 哈弗曼树
- Python---石头剪子布
- size_t与size_type辨析
- 基数排序(10^5 以内的数字),有空思考下 10^17 (整数越界的情况)
- Java中键盘两种输入
- 51nod oj 1107 斜率小于0的连线数量 【类逆序数】
- 三级联动
- 数组作为函数的参数