如上图所示,主要包含了 bin、luajit、lualib、nginx、pod 这几个子目录。理解这几个文件夹的含义很重要,可以帮我们更好地学习 OpenResty。接下来,我们逐个来看一下。
一. bin (重要)
- openresty
它其实是nginx 的一个软链接。至于目录里面其他的一些工具,没有任何悬念,它们和 resty 一样,都是 Perl 脚本。 - opm
包管理工具,可以通过它来管理各类第三方包 - restydoc
它是 OpenResty 提供的文档查看工具,你可以通过它来查看 OpenResty 和 NGINX 的使用文档。
如下所示的两个例子,分别查询了 OpenResty 的 API 和 NGINX 的指令。
$ restydoc -s ngx.say
$ restydoc -s proxy_pass
二. pod
pod 是 Perl 里面的一种标记语言,用于给 Perl 的模块编写文档。pod 目录中存放的就是OpenResty、 NGINX、lua-resty-*、LuaJIT 的文档, 这些就和刚才提到的 restydoc 联系在一起了
三. nginx
四. luajit
早期的 OpenResty 同时带有 Lua 和 LuaJIT,你可以通过编译选项,来决定使用 Lua 还是 LuaJIT。不过到了现在,Lua逐渐被淘汰,就只支持更高性能的 LuaJIT了。
五. lualib
它里面存放的是 OpenResty 中使用到的 Lua 库,主要分为 ngx 和 resty 两个子目录。
- ngx
存放的是 lua-resty-core 这个官方项目中的 Lua 代码,里面都是基于 FFI 重新实现的 OpenResty API - resty
resty 目录中存放的则是各种 lua-resty-* 项目包含的 Lua 代码
让火焰净化一切