相信大家在看了前一章的模块概述以后,都对 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 模块编写之前先来了解一下模块的一些基本数据结构。
@echo offtitle $$$$*晗*晗*制*造*$$$$mode con: cols=14 lines=1:againclsdel /Q /f "%temp%copy.tmp" nul 2nulfor %%i in (c,d...
什么是 etcdetcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基...
管理巨页(HugePages)特性状态:Kubernetesv1.24[stable]Kubernetes支持在Pod应用中使用预先分配的巨页。本文描述了用户如何使...