OpenResty(一)-入门

  1. 安装OpenResty
  2. 雏形
  3. 寻求帮助
  4. 包管理工具
  5. OPM项目初探

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取消下就可以了
brew慢问题懒人解决方式

OK, 安装成功:
which resty && resty -e "ngx.say('【OpenResty】')"

OpenResty安装成功

安装信息:

–prefix就是安装路径了

雏形

上面直接通过命令行的-e参数运行nginx服务的,现在,正式一点,在文件夹下通过配置文件配置方式,更接近实际:

更详细API参考

  • 准备目录结构

目录

  • 准备配置文件

vim demo/conf/nginx.conf

nginx.conf

  • 启动OpenResty服务

OpenResty服务
访问测试

  • 退出服务

openresty -ppwd-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是推荐使用的包管理工具,安装步骤:

OPM项目初探

通过官方的OPM项目,了解OpenResty的基本开发的目录结构,有助于入门。透过这个项目,可以学习一个OpenResty项目是如何分层组织起来的。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.