简介
OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多高质量的第三方模块,以及它们的大多数依赖项。通过汇聚各种nginx模块,从而将nginx有效地变成一个强大的web应用服务器,从而使web开发人员可以使用lua脚本语言调用nginx支持的各种C和lua模块,快速构造出足以胜任10K+并发连接响应的超高性能web应用。
本教程适用于CentOS 6.x版本。
在安装OpenResty环境之前,您需要先对CentOS操作系统做一些初始化的工作,可以参考CentOS系统初始化设置。
下载安装openresty
从http://openresty.org/cn/下载合适版本的openresty, 并编译安装:
wget https://openresty.org/download/ngx_openresty-1.9.3.2.tar.gz
tar xvf ngx_openresty-1.9.3.2.tar.gz
cd ngx_openresty-1.9.3.2
sudo yum install readline-devel pcre-devel openssl-devel
./configure
gmake
sudo gmake install
lua包管理
openresty 基于 Lua 语言开发,所以lua的开发环境和包管理器是开发一个重要支持。Luarocks 是一个 Lua 包管理器,,提供一个命令行的方式来管理 Lua 包依赖、安装第三方 Lua 包等。 下面介绍如何安装luarocks:
wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz
tar zxvf luarocks-2.2.2.tar.gz
cd luarocks-2.2.2
./configure --with-lua-bin=/usr/bin/ --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1/
make build
sudo make install
关于luarocks的使用可以参考http://luarocks.org。
openresty使用示例
下面介绍使用openresty+lua实现简单的APP, 该实例仅用作计算参数user的MD5值并返回。 首先安装在例子中需要使用的lua md5模块:
sudo /usr/local/bin/luarocks install md5
修改配置文件/usr/local/openresty/nginx/conf/nginx.conf如下:
location / {
content_by_lua '
md5=require("md5")
ngx.req.read_body()
uriargs = ngx.req.get_uri_args()
if uriargs.user then
ngx.say(uriargs.user..":"..md5.sumhexa(uriargs.user))
end
';
}
接下来启动nginx并使用curl测试:
$ sudo /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
$ curl http://127.0.0.1/?user=2332
2332:e77dbaf6759253c7c6d0efc5690369c7
总结
使用美团云内置的yum源,我们可以快速的搭建起Openresty+lua的环境,快速实现和部署自己的10K+超高性能web应用。