openresty资料之基本信息,


◆ OpenResty 的核心组成部分:

1. nginx:高性能的Web 服务器
2. LuaJIT:高效的Lua 语言解释器/编译器
3. ngx_lua(http_lua):处理HTTP 协议,让Lua 程序嵌入在Nginx 里运行
4. stream_lua:与ngx lua 类似,但处理的是TCP/UDP 协议

使用这四个核心组件, OpenResty 就可以完成相当多的网络应用开发工作了。同时,它还包含了其他一些非常有用的Nginx 组件和Lua 组件,进一步增加了
开发工作的便利。

◆ Nginx 组件:

1. ngx_conv:转换不同的字符集编码
2. ngx_encrypted:使用 AES-256 算法执行简单的加密运算
3. ngx_echo:提供一系列“echo”风格的指令和变量
4. ngx_set_misc:增强的“set xxx”指令,用来操作变量;
5. ngx_headers_more:更方便地处理 HTTP 请求头和响应头的指令
6. ngx_memc:支持各种memcached 操作
7. ngx_redis2:支持各种Redis 操作
8. ngx_dizzle:支持各种MySQL 操作
9. ngx_postgres:支持各种PostgreSQL 操作

◆ 常用的Lua组件:

1. lua_core:Open_Resty的核心功能库;
2. lua_cjson:处理JSON 格式的数据,速度很快(使用c语言实现)
3. lua_string:hex/rnd5/shal/sha256等字符串功能
4. lua_upload:流式读取HTTP的上行数据
5. lua_healthcheck:后端集群健康检查
6. lua_limit_traffic:定制流量控制策略
7. lua_lock:基于共享内存的非阻塞锁
8. lua_lrucache:高效的LRU缓存功能
9. lua_dns:高效、非阻塞的DNS解析功能
10. lua_websocket:高效、非阻塞的WebSocket功能
11.  lua_redis:Redis 客户端,用起来比ngx_redis2更灵活
12.  lua_memcached:Memcached 客户端,用起来比ngx_memc 更灵活
13.  lua_mysql:MySQL客户端,用起来比ngx_dizzle 更灵活

◆ 辅助工具

核心组件、Nginx 组件和Lua 组件实现了OpenResty 的主要功能, 但作为集成开发环境,辅助开发、调试和运维的工具也是必不可少的。

1. opm:类似rpm 、口pm 的管理工具,用来安装各种功能组件
2. resty-cli:以命令行的形式直接执行OpenResty/Lua 程序
3. restydoc:类似man的参考手册,非常详细

◆ 组件示意图:

◆ 版本号:
OpenResty 使用四位数字作为版本号,形式是:a.b.c.x ,其中前三位数字是内部Nginx的版本,作为大版本号,第四位数字是OpenResty 自己的发布版本号,也就是小版本号。

◆ 目录结构:

通常我们需要关注的是bin和lualib目录。

1. bin:存放可执行文件
2. luajit:LuaJIT 运行库
3. lualib:Lua组件
4. nginx:Nginx 核心运行平台
5. pod:参考手册(restydoc)使用的数据
6. site:包管理工具(opm)使用的数据

bin目录里存放的是OpenResty可执行文件,关系到OpenResty的运行,较重要的有:

 1. openresty:可执行文件,用来启动OpenResty服务(调用nginx的软链接openresty -> /home/openresty/nginx/sbin/nginx)
 2. opm:组件管理工具,用来安装各种功能组件
 3. resty:命令行工具,可直接执行Lua 程序
 4. restydoc:参考手册

lualib 目录里存放的是OpenResty自带的Lua 组件,如lua_cjson、lua_core 等

相关内容

    暂无相关文章