OpenResty诞生于2007年,是一个兼具开发效率和性能的服务端开发平台,其核心是基于Nginx的一个C模块(lua-nginx-module),该模块将LuaJIT嵌入到Nginx服务器中,并对外提供了一套完整的Lua API,透明地支持非阻塞I/O,提供了轻量级线程、定时器等高级抽象。主要用来实现微服务API网关。
graph LR; OpenResty三大特性-->详尽的文档和测试用例; OpenResty三大特性-->同步非阻塞; OpenResty三大特性-->动态;
对于 OpenResty 来说,绝大部分都是同步操作,只有 ngx.timer 这种后台定时器相关的 API,才是异步操作
安装OpenResty
brew tap openresty/brew && brew install openresty
小插曲:
brew命令卡在Updating Homebrew…
可以Ctrl+C
取消下就可以了
OK, 安装成功:which resty && resty -e "ngx.say('【OpenResty】')"
安装信息:
–prefix就是安装路径了
雏形
上面直接通过命令行的-e参数运行nginx服务的,现在,正式一点,在文件夹下通过配置文件配置方式,更接近实际:
- 准备目录结构
- 准备配置文件
vim demo/conf/nginx.conf
- 启动OpenResty服务
- 退出服务
openresty -p
pwd-c demo/conf/nginx.conf -s quit
上面直接把代码放在配置文件,不合适,现在把它抽出来:
mkdir demo/lua && echo "ngx.say('openresty')" > demo/lua/openresty.lua && cat demo/lua/openresty.lua
然后修改配置文件nginx.conf:
重启OpenResty服务,可以正常访问。
寻求帮助
可以借助OpenResty提供的命令restydoc
,如:
restydoc -s ngx.say
这些文档的路径就是–prefix参数下的pod子文件夹
包管理工具
OPM是OpenResty自带的包管理器(不支持私有包),类似docker search,opm也支持搜索:
这里维护了几乎所有OpenResty可用的包。
luarockers是推荐使用的包管理工具,安装步骤:
tar zxf luarocks-3.3.1.tar.gz
【需事先安装lua】cd luarocks-3.3.1 && ./configure && make && sudo make install
OPM项目初探
通过官方的OPM项目,了解OpenResty的基本开发的目录结构,有助于入门。透过这个项目,可以学习一个OpenResty项目是如何分层组织起来的。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.