在CentOS 6上搭建openresty环境

文/Zhangbingbo 2015-12-10 23:20:00

简介

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应用。

知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

最新文章 全部