好久没有玩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("hello, world
")';}}
}
-s 发送指定信号给master进程
查看nginx版本号
查看nginx是否正常开启。
在火狐浏览器中的效果
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
略有逊色一丢丢,但是考虑到我使用的是虚拟机,而且公司网络的原因,结果还是令人满意的。
下面是我在阅读《OpenResty最佳实践》时的实践细节,特此记录一下。这是一份值得反复阅读且十分宝贵的资料,感谢360的开源! 简介 OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 OpenResty 是一个强大...
vim /etc/init.d/nginx 粘贴 #!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # description: Nginx is a high-...
1.下载nginx 方法一 wget http://nginx.org/download/nginx-1.11.6.tar.gz 方法二 http://nginx.org/en/download.html在Nginx官网手动下载 2.解压nginx的gz包 tar -zxvf nginx-1.11.6.t...
本文档记录了完全使用最新源码来编译安装nginx最新版1.10.3,所有的依赖也是最新的,便于第三方nginx模块开发 假定使用root身份安装 目前最新的源码地址汇总 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz http:/...
为了自己的ThinkPad T420上面的Ubuntu可以使用openresty开发,我特地记录一下安装过程: 安装依赖包 apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential 下载源码并...
根据工作需要,现在需要安装nginx服务器,本来可以直接安装别人制作好的rpm包的,但是本着爱折腾和时刻尝鲜的精神,我决定从官网下载最新的nginx源码来安装,下面记录了我的安装过程。 下面的安装假定是以root用户登录并执行 1.安装依赖库 这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zl...
如果你想在自己的IPhone上安装一个ipa文件,你的手机是无法正常安装的,(越狱,企业证书分发除外)但是我们可以通过以下步骤来实现,前提要有自己的开发者账号。接下来就看一下具体的步骤:第一步:用Xcode新建一个工程Bundle identifier不要和手机中已有的的APP重复,然后用自己的证书打包出ipa文件。第二步:获取mob...
刚接触,啥子都不会,按着教程走需求:识别图片中的文字信息环境:windows系统开发语言:python3.5使用工具类:1.pyocr2.PIL3.tesseract-ocr步骤:1.pyocr网络通直接使用命令:pip install pyocr网络不通,转至https://pypi.python.org/pypi/pyocr/0....
1、前言程序设计好以后会生成若干可执行文件和依赖文件。为了方便程序被更好地使用,需要将程序封装为一个安装程序。2、平台和环境Windows系统安装NSIS下载地址:https://nsis.sourceforge.io/DownloadNSIS(Nullsoft Scriptable Install System)是一个开源的 Win...
展开全部 f=open('xxx','r',encoding='utf-8') file=f.readlines() f.close() f=open('xxx','w',encoding='utf-8') for i in len(file): ----file[i]=file[i].split(',') ----file[i][1...
PIL(Python Imaging Library)是Python中一个强大的图像处理库,但目前其只支持到Python2.7 pillow是PIL的一个分支,虽是分支但是其与PIL同样也具有很强的图像处理库。 Python3.7.0 如何安装pillow 此安装方法在windows7环境下完成: >>>win+r调出运行窗口,键入c...