一.模拟缓存前移的实现
- 1.关闭lnmp架构下的nginx服务
因为Openresty的模块中含有Nginx
[root@server1 sbin]# nginx -s stop
- 2.官网下载OpenResty的原码包解压并编译
[root@server1 openresty-1.13.6.1]# ./configure #编译
[root@server1 openresty-1.13.6.1]# gmake && gmake install #安装
- 3.将memcache用于测试的俩个php文件复制到OpenResty的Nginx的默认发布目录下
[root@server1 html]# cp /usr/local/lnmp/nginx/html/memcache.php .
[root@server1 html]# cp /usr/local/lnmp/nginx/html/example.php .
- 4.openresty配置文件的编辑
文件编辑内容如下:
2 user nginx nginx; ##修改nginx服务的控制用户
3 worker_processes 2; ##设置工作协程
17 http {
18 upstream memcache { ##添加memcache缓存服务
19 server localhost:11211; ##memcache服务在本机的11211端口
20 keepalive 512;
21 }
69 location /memc { ##设置memcache的访问及其存储
70 internal; ##只允许内部
71 memc_connect_timeout 100ms; #定义连接发送及其超时时间
72 memc_send_timeout 100ms;
73 memc_read_timeout 100ms;
74 set $memc_key $query_string; #memcache以键值对的形式存储
75 set $memc_exptime 300;
76 memc_pass memcache;
77 }
78 location ~ \.php$ { ##打开nginx的php模块
79 set $key $uri$args;
80 srcache_fetch GET /memc $key;
81 srcache_store PUT /memc $key; ##设置访问形式,如果memcache里面有缓存的话直接读取,如果没有的话去服务器去取
82 root html;
83 fastcgi_pass 127.0.0.1:9000;
84 fastcgi_index index.php;
85 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
86 include fastcgi.conf; ##定义nginx与php连接的时识别的文件
87 }
配置文件参数详解如下:
-
upstream不产生自己的内容,而是通过请求后端服务器得到内容请求并取得相应内容的整个过程已经被封装到nginx内部,所以upstream模块只需要开发若干调回函数,完成构造请求和解析响应等具体工作。nginx将memcache缓存前移,客户端到来先查看nginx的缓存
-
所有请求都是通过location来操作memcache,memc-nginx-module存取memcache是基于http method语义的
-
使用http的GET方法表示get,PUT方法表示set,设置memcache的缓存方式为internal只接受内部访问
-
memc_key表示以什么作为key,文件中使用的是query_string来作为key,$memc_exptime表示缓存失效时间,为秒
-
5.检查配置文件是否有错误并且开启服务
[root@server1 /]# cd /usr/local/openresty/nginx/sbin/
[root@server1 sbin]# nginx -t
再次查看确认是否为openresty模块下的nginx
[root@server1 sbin]# pwd
/usr/local/openresty/nginx/sbin
[root@server1 sbin]# ./nginx -V
注:可以看到lnmp框架下的Nginx的版本为Nginx,在开启服务时因为做的是OpenResty开启的服务应该是OpenResty模块下的Nginx
开启服务,查看端口(默认80,同时要开启么么擦车默认为11211,php默认为9000)
- 6.在浏览器页面输入查看
显示为进入OpenResty页面则表示正确 - (7)压力测试
[root@server1 sbin]# ab -c 10 -n 5000 http://172.25.254.1/index.php
[root@server1 sbin]# ab -c 10 -n 5000 http://172.25.254.1/example.php
可以看到相较于普通模式下的Nginx+memcache下的访问速度,使用OpenResty下的Nginx+memcache的缓存速度明显加快