LNMP架构(4)——OpenResty实现nginx前端缓存,


我们在上一章学习了memcache对php页面的加速,那么我们在这一章来学习使用OpenResty来实现对nginx前端的缓存

OpenResty?

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

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,因为我们的OpenResty是自带有nginx的

nginx -s stop

2.官网下载OpenResty的安装包,并解压


3.编译安装


编译完后体使我们要用gmake安装

4.为openresty的nginx书写默认发布目录

5.修改openresty的配置文件
vim /usr/local/openresty/nginx/conf/nginx.conf


更改用户和用户组与进程数

upstream属于handler,只是他不产生自己的内容,而是通过请求后端服务器得到内容,所以才称为upstream(上游)。请求并取得响应内容的整个过 #程已经被封装到nginx内部,所以upstream模块只需要开发若干回调函数,完成构造请求和解析响应等具体的工作。 # nginx将memcache缓存前移,客户端请求到来,先查看memcache缓存

添加php页面的访问

开启php界面处理

所有请求都通过请求这个location来操作 memcache,memc-nginx-module存取memcache是基于http method语义的, 使用http的GET方法表示get、PUT方法表示set、这里我们将/memc设为internal表示只接受内部访问 ,不接收外部http请求,这是为了安全考虑,当然如果需要通过http协议开放外部访问,可以去掉internal然后使用deny和allow指令控制权限。比较重要的是memckey这个变量,它表示以什么作为key, 这里我们直接使用Nginx内置的query_string来作为key,$memc_exptime表示缓存失效时间,以秒记。 这里统一设为300(5分钟),在实际应用中可以根据具体情况为不同的内容设置不同的过期时间。

wq退出保存
6.nginx -t 检测语法,然后开启nginx

7.物理即进行压力测试


我们一定要注意到现在运行的nginx时openresty的
然后我们关闭openresty的nginx,打开普通的nginx,然后进行压力测试

最后我们可以通过对比openresty的访问速度明显快,而且错误率低,命中率高

相关内容

    暂无相关文章