在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记,x86_64openresty


好久没有玩OpenResty,这段时间机会难得,赶紧实践一下。下面是我在rMBP的CentOS 6.9 x86_64虚拟机上安装目前最新版OpenResty 1.13.6.1的笔记。

OpenResty的下载地址是

https://openresty.org/cn/download.html


下面按照步骤说明如下:


1.安装依赖包

yum -y install readline-devel pcre-devel openssl-devel gcc gcc-c++ perl curl 



2.安装Drizzle Nginx模块的依赖库

这是一个通过libdrizzle直连MySQL或Drizzle数据库的nginx upstream模块。默认不包含在nginx发行包中,如果要启用的话,你需要在configure时添加--with-http_drizzle_module选项。
下面按照其依赖库libdrizzle7,采用了春哥提交的旧版本,目前官网的最新版编译不成功。因为是C++源码包,需要安装有gcc-c++库来编译。

wget http://openresty.org/download/drizzle7-2011.07.21.tar.gz
tar zxvf drizzle7-2011.07.21.tar.gz 
cd drizzle7-2011.07.21
./configure --without-server
make libdrizzle-1.0 
make install-libdrizzle-1.0




参考文献
https://github.com/openresty/drizzle-nginx-module#known-issues
https://openresty.org/cn/drizzle-nginx-module.html
http://blog.sina.com.cn/s/blog_4f9fc6e10101868j.html
http://blog.csdn.net/clarencezi/article/details/21196539


3.安装Postgres Nginx模块的依赖库
该模块默认未启用,可以在configure时添加--with-http_postgres_module来启用它。该模块需要使用外部libpq库,使用下面的命令安装
yum -y install postgresql-libs
yum -y install postgresql-devel
这两个都安装一下,不冲突,库版本号目前是8.4

参考文献
https://www.postgresql.org/
https://github.com/FRiCKLE/ngx_postgres


4.编译安装OpenResty

这次将未启用的模块也编译进来,以便后面的demo更顺利。

wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
tar zxvf openresty-1.13.6.1.tar.gz
cd openresty-1.13.6.1
./configure --prefix=/opt/openresty --with-http_drizzle_module --with-http_postgres_module --with-http_iconv_module
gmake
gmake install

注意,OpenResty 1.5.8.1+之后的版本默认使用LuaJIT组件,在configure时无须使用--with-luajit编译选项
编译中发现默认使用的是LuaJIT 2.1版本




编译完成之后的目录结构如下:



5.设置环境变量
为了后面启动OpenResty的命令简单一些,不用在OpenResty的安装目录下面进行启动,我们设置环境变量来简化操作。

需要将OpenResty中的nginx可执行程序的路径添加到系统可搜索目录下面:
vim /etc/profile
在末尾添加
export PATH=/opt/openresty/nginx/sbin:$PATH
保存退出之后,使之生效
source /etc/profile
可以使用echo $PATH来查看是否已经生效


将刚才安装的动态库libdrizzle.so生效
vim /etc/ld.so.conf
开头添加
/usr/local/lib
保存退出之后,执行刷新
ldconfig
执行下面的命令查看
ldconfig -p | grep --color libdrizzle



6.配置
为了不相互干扰,我们将安装目录和开发目录分开存放,创建新目录来存放配置文件
mkdir -p ~/or_test/{conf,logs}
在~/or_test/conf/nginx.conf配置中添加如下内容

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 20000;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>hello, world</p>")
            ';
        }
    }
}


下面了解一下OpenResty的选项
-p 设置prefix
-c 设置配置文件路径
-t 测试配置文件并退出

-s 发送指定信号给master进程


查看nginx版本号



校验配置文件合法性
nginx -p ~/or_test
nginx -p ~/or_test -t

重启
nginx -p ~/or_test -s reload

查看nginx是否正常开启。


在目前的配置下,执行nginx命令需要每次都加上-p ~/or_test选项,否则就会变成OpenResty的默认安装路径/opt/openresty了。

7.测试
在命令行输入
curl -i http://localhost:20000


在火狐浏览器中的效果



8.性能测试Benchmark
ab -c10 -n50000 http://localhost:20000/
对测试结果,我们只关心这项指标
Requests per second:    17797.10 [#/sec] (mean)



对比春哥官网上的数据
https://openresty.org/cn/benchmark.html


17k+ r/s vs 20k+ r/s
略有逊色一丢丢,但是考虑到我使用的是虚拟机,而且公司网络的原因,结果还是令人满意的。



相关内容

    暂无相关文章