首页 > 代码库 > openresty 简介

openresty 简介

openresty 简介

 

参考文档:http://openresty.org/cn/index.html

 

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

 

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

  • LuaJIT                                       luaJIT解释器
  • ArrayVarNginxModule              支持数组变量
  • AuthRequestNginxModule                          
  • CoolkitNginxModule                     一些插件
  • DrizzleNginxModule                     支持对mysql的访问
  • EchoNginxModule                     一堆类似于shell命令的指令,支持(串行/并行)子请求等,这个模块很酷,也很实用
  • EncryptedSessionNginxModule
  • FormInputNginxModule            
  • HeadersMoreNginxModule            http头处理
  • IconvNginxModule                       设置响应编码集
  • StandardLuaInterpreter               标准lua解释器
  • MemcNginxModule                      支持对Memcached的访问
  • NginxDevelKit
  • 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           wb协议解析库
  • LuaUpstreamNginxModule             扩展了对upstream的支持    
  • PostgresNginxModule                   支持对Postgres数据库的访问
  • RdsCsvNginxModule                     filter模块,将Drizzle和Postgres两个模块的响应格式化为csv输出
  • RdsJsonNginxModule                    filter模块,将Drizzle和Postgres两个模块的响应格式化为json输出
  • RedisNginxModule                        支持对redis的访问(只支持select和get命令)
  • Redis2NginxModule                      支持对redis的访问(支持所有redis命令)
  • SetMiscNginxModule                     一堆set命令,用于设置变量
  • SrcacheNginxModule                   通过子请求进行cache
  • XssNginxModule

 

浏览一下上述模块:

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

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

 

openresty 简介