Openresty 与 Tengine

Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开源项目;

Openresty的最大特点是引入了ngx_lua模块,支持使用lua开发插件;

Tengine的特点是融入了因淘宝自身的一些业务带来的新功能;

 

Tengine 简介

tengine官方网站:http://tengine.taobao.org/index_cn.html

在 Nginx官方版本的基础上增加的一些定制模块如下:

1、支持动态加载模块:通过加载so文件实现,不用再重新编译整个项目了。

、ngx_proc_daytime_module模块,这个模块允许开一个独立的服务进程,该模块本身并未实现具体的业务逻辑,而是构建了一个TCP Server框架,等待开发者来实现自己的业务;

 

3、ngx_http_concat_module模块,用于合并多个文件的响应;

 

4、ngx_http_upstream_session_sticky_module模块,该模块是一个负载均衡模块,通过cookie实现客户端与后端服务器的会话保持, 在一定条件下可以保证同一个客户端访问的都是同一个后端服务器。

 

5、ngx_http_upstream_check_module模块,用于检查upstream上游服务器的健康状况。
6、trim filter模块,用于删除 html,内嵌 javascript 和 css 中的注释以及重复的空白符。
7、ngx_http_headers_module模块,支持根据Content-Type来设置过期时间。

8、ngx_http_limit_req_module模块,限制访问。

9、扩展了ngx_http_log_module模块,支持syslog和pipe;


Openresty 简介

 

openresty官方网站:http://openresty.org/cn/index.html

agentzh自己对openresty的介绍:http://blog.zoomquiet.org/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html

 

agentzh(章亦春)的openresty开源项目(基于nginx),通过各种插件、模块,极大的扩展了nginx能干的事情,而lua扩展更是可以用来定制非常复杂的业务逻辑。作者给nginx赋予的这些新的特性,使openresty在业务开发上变得更加简单,对程序员更加友好,开发者可以在不需要对nginx源码熟悉的情况下就直接使用一些高级特性,比如并发subrequest、dns异步解析、对第三方数据库(如mysql、redis、memcached)等的访问。

 

先简单看一下openresty扩展的模块:

 

 

  • LuaJIT                                       luaJIT解释器
  • StandardLuaInterpreter               标准lua解释器
  • LuaCjsonLibrary                          json库
  • LuaNginxModule                       lua接口库 (该模块本身用C实现)
  • LuaRdsParserLibrary                   rds格式解析
  • LuaRedisParserLibrary                 redis响应解析库
  • LuaRestyCoreLibrary                   LuaNginxModule模块的lua实现
  • LuaRestyDNSLibrary                   dns解析库
  • LuaRestyLockLibrary                
  • LuaRestyLrucacheLibrary             LRU cache库
  • LuaRestyMemcachedLibrary     memcached访问接口
  • LuaRestyMySQLLibrary                mysql访问接口
  • LuaRestyRedisLibrary                  redis访问接口
  • LuaRestyStringLibrary                 一些hash函数的接口
  • LuaRestyUploadLibrary              
  • LuaRestyUpstreamHealthcheckLibrary
  • LuaRestyWebSocketLibrary           ws协议解析库
  • LuaUpstreamNginxModule             扩展了对upstream的支持    

 

 

浏览一下上述模块,有几个特点:

1、通过upstream机制已经可以支持对mysql、redis、postgreSQL、memcached 等数据库的访问(全都是异步无阻塞的);

2、跟lua扩展有关的模块,提供给lua脚本调用的库,api非常丰富,涉及各种的操作;





本文地址:http://www.snl.cn/article/657

↑上一篇: 微软安全专家呼吁用户停用IE
↓下一篇: 争夺小程序:腾讯、阿里、百度、头条一个都不能少!

填写您的需求/意见获取项目报价。

*请认真详细填写需求信息(简单留言均不回复!!!!留言样板!!! 戳>>),SNL会在24小时内与您取得联系。
线上服务咨询扫码关注SNL020-86000345填写需求索取报价

Copyright © 2003-2021 SNL 版权所有 广州市天传计算机网络技术有限公司 粤ICP备14094397号