1 什么是OpenResty?
OpenResty(又称: ngx_ openresty) 是一个基于NGINX的可伸缩的Web平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty是一个强大的Web应用服务器,Web开发人员可以使用Lua脚本语言调动Nginx支持的各种C以及Lua模块,更主要的是在性能方面,OpenResty可以快速构造出足以胜任10K以上并发连接响应的超高性能Web应用系统。
360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是OpenResty的深度用户。
OpenResty的目标是让你的Web服务直接跑在Nginx服务内部,充分利用Nginx的非阻塞I/O模型,不仅仅对HTTP客户端请求,甚至于对远程后端诸如MySQL,、PostgreSQL、Memcaches以及Redis等都进行一致的高性能响应。所以对于一些高性能的服务来说,可以直接使用。
OpenResty访问Mysq|或Redis等,而不需要通过第三方语言( PHP、Python、Ruby )等来访问数据库再返回,这大大提高了应用的性能。
参考openresty中文官网http://openresty.org/cn
2 部署OpenResty
我们上一个实验讲到的是,部署一个php+memcache,当客户端进行web页面的动态访问时,nginx先访问FastCGI,然后FastCGI再去php拿资源,然后返回给FastCGI,最终反馈给客户端资源,并且会在memcache中缓存一份,以后客户端再次访问相同的资源时,直接从memcache中拿取已经缓存的资源,这样就能加速web页面的访问速度,那么由此我们可以得到些许启发,如果直接给nginx也搭建一个缓存机制,这样当同样的请求再次到来时就可以不用再通过FastCGI来去向php、memcache去获取资源,这样岂不是速度更快。
但是需要注意一点:nginx不支持memcache,所以我们就需要搭建OpenResty来完成缓存的功能。
实验环境:
server1安装nginx,在其上安装OpenResty,classroom作为客户端来进行测试
步骤一:解压并源码编译openresty源码包
tar zxf openresty-1.13.6.1.tar.gz
cd openresty-1.13.6.1
./configure --prefix=/usr/local/openresty
gmake && gmake install
步骤二:修改openresty的配置文件
nginx -s stop #关闭之前的nginx服务
cd /usr/local/openresty/nginx/conf/
vim nginx.conf
步骤三:将测试文件复制到openresty的默认发布目录下
cp /usr/local/lnmp/nginx/html/index.php /usr/local/openresty/nginx/html/
cp /usr/local/lnmp/nginx/html/example.php /usr/local/openresty/nginx/html/
步骤四:启动openstry
/usr/local/openresty/nginx/sbin/nginx
步骤五:测试
ab -c 10 -n 5000 http://172.25.0.1/index.php
ab -c 10 -n 5000 http://172.25.0.1/example.php
通过测试可以发现:相比上一篇博文中的一层缓存,再加一层缓存后,速度大大提高,且出错率为0