企业级lnmp架构讲解(五)openResty 实现nginx端的缓存优化

二次信任 提交于 2020-03-01 19:19:18

在之前,我们对lnmp架构中的php进行了加速提升,我们使用了memcache,那么如何进一步提升访问网站的速度呢?

我们可以对nginx进行加速提升,使nginx也支持memcache 第一步,nginx-fastcgi-php nginx得到数据给客户端,我们可以给nginx也复制一份数据,保存一份在自己的memcache中,再下一次有相同的请求时,nginx直接将自己缓存中的资源给用户。

但是nginx默认不支持memcache,所以我们需要借助openResty。

openResty是什么

在这里插入图片描述在这里插入图片描述
OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

openResty的运行原理

1.Nginx 采用的是 master-worker 模型,一个 master 进程管理多个 worker 进程,基本的事件处理都是放在 woker 中,master 负责一些全局初始化,以及对 worker 的管理。

2.在OpenResty中,每个 woker 使用一个 LuaVM,当请求被分配到 woker 时,将在这个 LuaVM 里创建一个 coroutine(协程)协程之间数据隔离,每个协程具有独立的全局变量

搭建步骤

实验背景:与之前的博客的背景相同

1.在server1中解压openResty安装包
在这里插入图片描述
2.对openResty进行编译,编译方式与nginx一模一样

也可以指定编译的路径
在这里插入图片描述3.gmake && gmake install安装
在这里插入图片描述4.停止nginx在这里插入图片描述5.修改openResty的配置文件
在这里插入图片描述(1)打开php模块
在这里插入图片描述(2)打开让openResty识别本地的11211端口

在这里插入图片描述并在括号外添加keepalive 512 保持连接512秒

(3)设置openResty识别自己的memcache
在这里插入图片描述(4)
在这里插入图片描述6. 检查没有语法错误之后开启服务,查看端口

vim nginx.conf编辑openresty的配置文件
/usr/local/openresty/nginx/sbin/nginx -t检测语法
/usr/local/openresty/nginx/sbin/nginx 启动服务
ps ax查看进程

7.复制测试文件,保证对比openResty和普通nginx时,处在同一环境中

cp /usr/local/lnmp/nginx/html/example.php /usr/local/openRestynginx/html
cp /usr/local/lnmp/nginx/html/index.php /usr/local/openRestynginx/html

8.在nginx关闭的情况下,启动openResty

/usr/local/openresty/nginx/sbin/nginx

现在的web服务器是 nginx+memcacheopenresty==

openResty是nginx的plus版,很多nginx做不到的事情,可以用openResty来做

在这里插入图片描述在这里插入图片描述加上nginx缓存之后,访问index.php和example.php都比之前更快了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!