好久没有玩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 略有逊色一丢丢,但是考虑到我使用的是虚拟机,而且公司网络的原因,结果还是令人满意的。

在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记的更多相关文章

  1. PhoneGap / iOS上的SQLite数据库 – 超过5mb可能

    我误解了什么吗?Phonegap中的sqlitedbs真的有5mb的限制吗?我正在使用Phonegap1.2和iOS5.解决方法您可以使用带有phonegap插件的原生sqliteDB,您将没有任何限制.在iOS5.1中,Websql被认为是可以随时删除的临时数据…

  2. ios – 使用带有NodeJs HTTPS的certificates.cer

    我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

  3. ios – CFNetwork内部错误:URLConnectionLoader.cpp:289

    当我在一段时间后打开我的应用程序时,我收到了日志:440:CFNetworkinternalerror(0xc01a:/buildroot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-758.4.3/Loading/URLConnectionLoader.cpp:289)它从未出现在过去.我的项目使用网络库AFNetworkin

  4. ios – 使用大写符号在字符串swift中获取URL的正则表达式

    我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

  5. ios – xcode在更新可可豆荚后出现体系结构错误的重复符号

    编辑:执行下面显示的解决方案后,我的项目只编译iPadAir,我不能再存档,我仍然得到相同的错误…

  6. ios – UIWebView中的WebSQL / SQLite数据库的最大大小(phonegap)

    我知道一般来说,Web应用程序的本地存储空间有5MB的限制.本地网页浏览应用程式是否也有这个限制?

  7. ios – 我可以使用自签名SSL证书服务器在空中部署企业应用吗?

    iOS7.1之后,如果我们要通过空中部署我们的Enterprise应用程序,则manifest.plist文件的URL必须是HTTPS.例如:在我的服务器中,我使用自签名SSL证书.当我点击iPhone上的URL时,它表示无法连接到并记录典型的所以,我想知道我是否可以使用自签名SSL证书?如果可以,我如何解决我遇到的问题的问题?

  8. ios – 如何使用YouTube API V3?

    我想知道如何在iOS应用中使用新的YouTubeAPI(第3版),但我不知道如何做.我做了很多关于它的研究,但是我发现所有的例子和老API的代码,所以它们是无效的.现在,我明白了,使用新的API你必须在Google开发者控制台中创建一个项目…使用API2很简单它…

  9. 如何在iOS Couchbase Mobile上使用HTTPS复制?

    我正在使用iOSCouchbaseMobile在iPad上使用一个couchdb服务器,它使用复制与服务器进行同步.cloudant使用HTTPS,当我尝试在iPad上复制时,我只是被错误地垃圾邮件发送.这是一个已知的问题,如thisFAQarticle所示.它建议使用1.0.2修复问题,但是如何知道我是否在ErlangR14上运行?

  10. ios – 有没有人使用UIWebView找到一种使用无效服务器证书加载HTTPS页面的方法?

    如果用户尝试在MobileSafari中加载https网页,并且服务器的证书验证检查失败(已过期,撤销,自签名等),则显示用户将显示一条警告消息,并询问他们是否要继续或不.类似地,NSURLConnection提供了实施者首先决定如何检查证书的能力,然后在失败的情况下决定如何执行,因此在这种情况下也可以向用户显示警告并为他们提供继续加载的机会页面还是不.但是,当在UIWebView中加载https

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部