一、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的搭建

该实验在上一篇`memcache+php页面访问的加速`的基础上进行如下的操作,并于上一篇做对比。

1)关闭nginx服务,否则会与openResty服务端口冲突

--->  nginx  -s stop

2)下载openResty源码包,解压并编译

--->  tar zxf openresty-1.13.6.1.tar.gz

--->  cd openresty-1.13.6.1

--->  ./configure --prefix=/usr/local/lnmp/openresty --with-http_ssl_module  --with-http_stub_status_module --user=nginx --group=nginx  --with-threads --with-file-aio

--->  gmake && gmake install

3)修改openResrty的配置文件

--->  cd /usr/local/lnmp/openresty/nginx/conf/

--->  vim nginx.conf

user  nginx  nginx;
 worker_processes  1;

#error_log  logs/error.log;
 #error_log  logs/error.log  notice;
 #error_log  logs/error.log  info;
 #pid        logs/nginx.pid;

events {
     worker_connections  65535;
 }

http {
         upstream  memcache{
         server localhost:11211;
         keepalive  512;
         }  

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

include       mime.types;
     default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
     #                  '$status $body_bytes_sent "$http_referer" '
     #                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
     #tcp_nopush     on;
 
     #keepalive_timeout  0;
     keepalive_timeout  65;
     #gzip  on;

server {
         listen       80;
         server_name  localhost;

#charset koi8-r;
         #access_log  logs/host.access.log  main;

location / {
             root   html;
             index  index.html index.htm;
         }
         #error_page  404              /404.html;
         # redirect server error pages to the static page /50x.html
         #
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
            root   html;
         }

# 所有请求都通过请求这个location来操作 memcache,memc-nginx-module存取memcache是基于http method语义的

location /memc{

internal;         # 只接收内部访问,不接受外部http访问。比较安全。也可用deny和allow来做权限设定
         memc_connect_timeout  100ms;
         memc_send_timeout 100ms;
         memc_read_timeout 100ms;
         set $memc_key $query_string;     # 以键值对的形式存储;memc_key表示以什么为key
         set $memc_exptime 300;           # 表示缓存失效时间,单位为s(一般为5分钟)
         memc_pass memcache;
         }
         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
         #
         #location ~ \.php$ {
         #    proxy_pass   http://127.0.0.1;
         #}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
         #
            location ~ \.php$ {
            set $key $uri$args;

srcache_fetch  GET /memc  $key;    #http的GET方法表示get、PUT方法表示set

srcache_store  PUT /memc  $key;

root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
         }

# deny access to .htaccess files, if Apache's document root
         # concurs with nginx's one
         #
         #location ~ /\.ht {
         #    deny  all;
         #}
     }

# another virtual host using mix of IP-, name-, and port-based configuration
     #
     #server {
     #    listen       8000;
     #    listen       somename:8080;
     #    server_name  somename  alias  another.alias;

#    location / {
     #        root   html;
     #        index  index.html index.htm;
     #    }
     #}
 }

4)打开openresty服务。检查是否有错误

--->  /usr/local/lnmp/openresty/nginx/sbin/nginx  -t    # 检测语法是否有错误
   --->  /usr/local/lnmp/openresty/nginx/sbin/nginx        # 启动openresty服务
   5)在真机中测试

# 在真机解析example.php文件,每秒请求的次数较之前有很大的提高:

openResty缓存前移(到达nginx端)的更多相关文章

  1. ASP.NET Core 缓存技术 及 Nginx 缓存配置

    前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...

  2. Nginx缓存配置以及nginx ngx_cache_purge模块的使用

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  3. 使用auth_request模块实现nginx端鉴权控制

    使用auth_request模块实现nginx端鉴权控制 nginx-auth-request-module 该模块是nginx一个安装模块,使用配置都比较简单,只要作用是实现权限控制拦截作用.默认高 ...

  4. openresty如何完美替换nginx

    下载openresty wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar zxvf openresty-1.15.8. ...

  5. openresty安装lua和nginx相关

    server{ listen ; server_name a.com; index index.php; root /usr/share/nginx/html; location / { if (!- ...

  6. OpenResty+缓存穿透基本介绍

    OpenResty                1.lua表达式                 2.Nginx的安装                3.OpenResty              ...

  7. openresty HTTP status constants nginx api for lua

    https://github.com/openresty/lua-nginx-module context: init_by_lua, set_by_lua, rewrite_by_lua, acce ...

  8. H5 缓存机制浅析 移动端 Web 加载性能优化

    腾讯Bugly特约作者:贺辉超 1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储, ...

  9. Nginx缓存配置及nginx ngx_cache_purge模块的使用

    ngx_cache_purge模块的作用:用于清除指定url的缓存 下载地址:http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz   1. ...

随机推荐

  1. sshd:root@notty解决方法

    sshd:root@notty解决方法 [复制链接]--http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2050551 cat /e ...

  2. http webservice socket的区别

    1 数据传输方式1.1 socket传输的定义和其特点    所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议. ...

  3. 4.3 Routing -- Generated Objects

    就像在routing guide中介绍的那样,不管什么时候你在路由器中定义一个新路径,Ember.js就会尝试寻找一个对应的route,controller,template,它们的命名都是根据命名约 ...

  4. uva1423 巧用拓扑排序

    对于一个序列 a1 a2 ... an 我们可以计算出一个符号矩阵A, 其中Si,j 为 a1+...+aj 的正负号,(连加和大于0则Sij=+ 小于0 Sij=-  等于0 则Sij=0), 根据 ...

  5. 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))

    Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实例系列文章的第4篇,该系列所有文章链接如下: http://www.cnblogs.com/aierong/a ...

  6. [one day one question] iphone6 plus h5页面滑动莫名卡

    问题描述: iphone6 plus h5页面滑动莫名卡,这怎么破? 解决方案: 比较奇葩的问题,在找不到任何问题的情况下,可以考虑在下发现的解决方案,html,body未添加height: 100% ...

  7. Sybase数据库常用sql语言

    Sybase数据库常用sql语言 1,表备份: --table_name1:需要备份的表; table_name2:备份后的表 SELECT * into table_name2 from table ...

  8. java 的异常处理

    一.异常的概念: java 中的异常通常指的是在运行期出现的错误,这样的错误也是比较难以调试的,解决问题的时候注意观察出现错误的名字和行号最重要 下面看这个例子: import java.io.*; ...

  9. Spring 中好用的泛型操作API

    随着泛型用的越来越多,获取泛型实际类型信息的需求也会出现,如果用原生API,需要很多步操作才能获取到泛型,比如: ParameterizedType parameterizedType = (Para ...

  10. pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/…)读写与处理模块(python)--转载

    pysam 模块介绍!!!! http://pysam.readthedocs.io/en/latest/index.html 在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.b ...