openresty

1. 什么是openresty

      openresty是一款http服务器,基于nginx,比nginx强大的地方是可以配置文件里配置输出内容,可以通过lu-redis等模块来直接连接redis来实现读写操作,不用apache 那样需要借助于php 语言才能连接数据库来实现数据的读写和网页的编写。

     官网说法:

OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。

OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。

连接:http://www.runoob.com/w3cnote/openresty-intro.html

2. 配置文件直接输出内容类似:

 content_by_lua '

                ngx.say("<p>Hello, World!</p>")

3.作用:

 a.自由连接后端,如redis.mysql

b. 访问控制

c响应头的修改

d.nginx输出内容的自定义在配置文件里,用content_by_lua。

4.具体配置:

修改响应头:

header_filter_by_lua 'ngx.header.Foo = ngx.HTTP_OK';

or header_filter_by_lua_file  path;

path:  ngx.header["aaa"]="bbb"

自定义网页内容:

content_by_lua  'ngx.say("hello world")';

控制访问:

access_by_lua_file  path;

path:   lua脚本里各种判断等内容

连接后端:

redis:

redis=require("resty.redis") 

redis 模块的路径 reety/redis

red=redis:new()

red:auth()

ok,res=red:auth("root1234")

red:connect()

ok,res=red:connect("127.0.0.1",6379)

red.set

red.get

mysql and memchched 类似:

注意  都是:    如new  connect 等

Openresty 

1, 同步非阻塞  概念:

同步:  程序按顺序执行,上一条任务执行返回后,下一条任务才继续执行,如果不等上一条命令的返回,下一条即开始的话,叫异步

非组塞: 指的是cpu 调用,  程序执行过程中,cpu 调用 网络,文件等内容时, 不会立刻返回,在此期间cpu 空闲, 如果cpu 同时去处理其他任务,即是 非阻塞。

openresty 的 同步非阻塞

站在用户请求的角度,非阻塞并不会减少处理的时间,但是会减少等待的时间。OpenResty 的每个 worker 同一时间只在处理一个请求,如果阻塞了,这个 worker 上的其他请求都需要等待。
C10K 要解决的是高并发的问题,是服务端的整体性能。

注意说的是openresty 的 同步非阻塞 和  cpu 非阻塞  不一样。。。

原文地址:https://www.cnblogs.com/brucewhite/p/8746275.html