设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

当初我要是这么学习Nginx就好了!(多图详解)(2)

发布时间:2020-03-23 12:31 所属栏目:119 来源:站长网
导读:upstream 内部流程,如下图: 反向代理流程,如下图: Nginx 定制化模块开发 Nginx 的模块化设计特点如下: 高度抽象的模块接口 模块接口非常简单,具有很高的灵活性 配置模块的设计 核心模块接口的简单化 多层次、

当初我要是这么学习Nginx就好了!(多图详解)

upstream 内部流程,如下图:

当初我要是这么学习Nginx就好了!(多图详解)

反向代理流程,如下图:

当初我要是这么学习Nginx就好了!(多图详解)

Nginx 定制化模块开发

Nginx 的模块化设计特点如下:

高度抽象的模块接口

模块接口非常简单,具有很高的灵活性

配置模块的设计

核心模块接口的简单化

多层次、多类别的模块设计

内部核心模块:

当初我要是这么学习Nginx就好了!(多图详解)

当初我要是这么学习Nginx就好了!(多图详解)

Handler 模块:接受来自客户端的请求并构建响应头和响应体。

当初我要是这么学习Nginx就好了!(多图详解)

Filter 模块:过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响应之前。

当初我要是这么学习Nginx就好了!(多图详解)

Upstream 模块:使 Nginx 跨越单机的限制,完成网络数据的接收、处理和转发,纯异步的访问后端服务。

当初我要是这么学习Nginx就好了!(多图详解)

Load_Balance:负载均衡模块,实现特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器。

当初我要是这么学习Nginx就好了!(多图详解)

ngx_lua 模块:

脚本语言

内存开销小

运行速度快

强大的 Lua 协程

非阻塞

业务逻辑以自然逻辑书写

当初我要是这么学习Nginx就好了!(多图详解)

定制化开发 Demo

Handler 模块:

编写 config 文件

编写模块产生内容响应信息

#配置文件: 

server { 

    ...     

    location test { 

        test_counter on; 

    } 

#config 

ngx_addon_name=ngx_http_test_module 

HTTP_MODULES="$HTTP_MODULES ngx_http_test_module" 

NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_test_module.c" 

#ngx_http_test_module.c 

static ngx_int_t 

ngx_http_test_handler(ngx_http_request_t *r) 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读