×
关于 Nginx

Nginx 背景介绍

什么是 NginxNginx 的特点

Nginx 平台初探

初探 Nginx 架构Nginx 基础概念Nginx 基本数据结构Nginx 的配置系统Nginx 的模块化体系结构Nginx 的请求处理

Nginx handler 模块

Nginx handler 模块简介Nginx 模块的基本结构Nginx handler 模块的基本结构Nginx handler 模块的挂载Nginx handler 的编写步骤Nginx 示例: hello handler 模块Nginx handler 的编译和使用Nginx 更多 handler 模块示例

Nginx 过滤模块

Nginx 过滤模块简介Nginx 过滤模块的分析

Nginx upstream 模块

Nginx upstream 模块简介Nginx 负载均衡模块

Nginx 其他模块

Nginx core 模块Nginx event 模块

Nginx 配置

Nginx 配置文件nginx.conf中文

Nginx handler 模块简介


相信大家在看了前一章的模块概述以后,都对 Nginx 的模块有了一个基本的认识。基本上作为第三方开发者最可能开发的就是三种类型的模块,即 handler,filter 和 load-balancer。Handler 模块就是接受来自客户端的请求并产生输出的模块。有些地方说 upstream 模块实际上也是一种 handler 模块,只不过它产生的内容来自于从后端服务器获取的,而非在本机产生的。

在上一章提到,配置文件中使用 location 指令可以配置 content handler 模块,当 Nginx 系统启动的时候,每个 handler 模块都有一次机会把自己关联到对应的 location上。如果有多个 handler 模块都关联了同一个 location,那么实际上只有一个 handler 模块真正会起作用。当然大多数情况下,模块开发人员都会避免出现这种情况。

handler 模块处理的结果通常有三种情况: 处理成功,处理失败(处理的时候发生了错误)或者是拒绝去处理。在拒绝处理的情况下,这个 location 的处理就会由默认的 handler 模块来进行处理。例如,当请求一个静态文件的时候,如果关联到这个 location 上的一个 handler 模块拒绝处理,就会由默认的 ngx_http_static_module 模块进行处理,该模块是一个典型的 handler 模块。

本章主要讲述的是如何编写 handler 模块,在研究 handler 模块编写之前先来了解一下模块的一些基本数据结构。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)