介绍Nginx的扩展 整合框架OpenResty
什么是OpenResty, 为什么要用OpenResty?
- 官网:http://openresty.org
- 阿里、腾讯、新浪、酷狗音乐等都是 OpenResty 的深度用户
Lua脚本介绍
- 官网:http://www.lua.org/start.html
- Lua 由标准 C 编写而成,没有提供强大的库,但可以很容易的被 C/C++ 代码调用,也可以反过来调用 C/C++ 的函数。
在应用程序中可以被广泛应用,不过Lua是一种脚本/动态语言,不适合业务逻辑比较重的场景,适合小巧的应用场景,代码行数保持在几十行到几千行。 - LuaJIT 是采用 C 和汇编语言编写的 Lua 解释器与即时编译器
- Lua 由标准 C 编写而成,没有提供强大的库,但可以很容易的被 C/C++ 代码调用,也可以反过来调用 C/C++ 的函数。
- 什么是ngx_lua
- ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,部署到Nginx中运行
- 即Nginx变成了一个Web容器;开发人员就可以使用Lua语言开发高性能Web应用了。
- OpenResty提供了常用的ngx_lua开发模块
- lua-resty-memcached
- lua-resty-mysql
- lua-resty-redis
- lua-resty-dns
- lua-resty-limit-traffic
- 通过上述的模块,可以用来操作 mysql数据库、redis、memcached等,也可以自定义模块满足其他业务需求,
- 很多经典的应用,比如开发缓存前置、数据过滤、API请求聚合、AB测试、灰度发布、降级、监控、限流、防火墙、黑白名单等
OpenResty和Lua相关环境准备
- OpenResty安装
# add the yum repo: wget https://openresty.org/package/centos/openresty.repo sudo mv openresty.repo /etc/yum.repos.d/ # update the yum index: sudo yum check-update sudo yum install openresty #安装命令行工具 sudo yum install openresty-resty # 列出所有 openresty 仓库里的软件包 sudo yum --disablerepo="*" --enablerepo="openresty" list available #查看版本 resty -V
本文作者为DBC,转载请注明。