一、主要概念:
1.OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。通过汇聚各种设计精良的 Nginx 模块,从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
2.OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。
二、配置缓存前移
1.关闭之前配置的nginx服务
[root@server1 ~]# nginx -s stop
2.下载一个openresty安装包,解压
[root@server1 ~]# tar zxf openresty-1.13.6.1.tar.gz
[root@server1 ~]# ls
3.编译
[root@server1 ~]# cd openresty-1.13.6.1
[root@server1 openresty-1.13.6.1]# ls
bundle configure COPYRIGHT patches README.markdown README-win32.txt util
[root@server1 openresty-1.13.6.1]# ./configure
编译完成后会提示安装时用gmake
4.安装
[root@server1 openresty-1.13.6.1]# gmake && gmake install
5.将 /usr/local/lnmp/nginx/html 下的两个配置文件复制到openresty的默认发布目录下
[root@server1 openresty-1.13.6.1]# cd /usr/local/openresty/
[root@server1 openresty]# ls
bin COPYRIGHT luajit lualib nginx pod resty.index site
[root@server1 openresty]# cd nginx/
[root@server1 nginx]# ls
conf html logs sbin
[root@server1 nginx]# cd html/
[root@server1 html]# ls
50x.html index.html
[root@server1 html]# cp /usr/local/lnmp/nginx/html/index.php .
[root@server1 html]# cp /usr/local/lnmp/nginx/html/example.php .
[root@server1 html]# ls
50x.html example.php index.html index.php
6.编辑openresty的配置文件
[root@server1 html]# cd ../conf/
[root@server1 conf]# ls
[root@server1 conf]# vim nginx.conf
17 http {
18 upstream memcache {
19 server localhost:11211;
20 keepalive 512;
21 }
22 include mime.types;
23 default_type application/octet-stream;
69 location /memc {
70 internal;
71 memc_connect_timeout 100ms;
72 memc_send_timeout 100ms;
73 memc_read_timeout 100ms;
74 set $memc_key $query_string;
75 set $memc_exptime 300;
76 memc_pass memcache;
77 }
78
79
80 location ~ \.php$ {
81 set $key $uri$args;
82 srcache_fetch GET /memc $key;
83 srcache_store PUT /memc $key;
84 root html;
85 fastcgi_pass 127.0.0.1:9000;
86 fastcgi_index index.php;
87 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
88 include fastcgi.conf;
89 }
7.检查没有语法错误之后开启服务,查看进程
[root@server1 conf]# ../sbin/nginx -t
[root@server1 conf]# ../sbin/nginx
[root@server1 conf]# ps ax
测试:浏览器访问成功
(1)http://172.25.68.1/index.php
(2)http://172.25.68.1/example.php
(3)http://172.25.68.1/
重启服务:
[root@server1 conf]# ../sbin/nginx -s reload
8.模拟5000请求量测试命中率和访问时间
发现index.php也没有失败,而且两个的访问时间都比memcache短
(1)
[root@server1 conf]# ab -c 10 -n 5000 http://172.25.68.1/index.php
(2)
[root@server1 conf]# ab -c 10 -n 5000 http://172.25.68.1/example.php