1. HTTP 过滤模块

ngx_http_not_modified_module

仅对 HTTP 头部做处理。在返回 200 成功时,根据请求中 If-Modified-Since 或者 If-Unmodified-Since 头部取得浏览器缓存文件的时间,再分析返回用户文件的最后修改时间,以此决定是否直接发送 304 Not Modified 响应给用户。

ngx_http_range_body_filter_module

处理请求中 Range 信息,根据 Rrange 中的要求返回文件的一部分给用户

ngx_http_copy_filter_module

仅对HTTP包体做处理。将用户发送的 ngx_chain_t 结构的 HTTP 包体复制到新的 ngx_chain_t 结构中(都是各种指针的复制,不包括实际 HTTP 响应内容),后续的 HTTP 过滤模块处理的 ngx_chain_t 类型的成员都是 ngx_http_copy_filter_module 模块处理后的变量。

ngx_http_headers_filter_module

仅对 HTTP 头部做处理。允许通过修改 nginx.conf 配置文件,在返回给用户的响应中添加任意的 HTTP 头部。

ngx_http_userid_filter_module

仅对 HTTP 头部做处理。这就是执行 configure 命令时得到的 http_userid_module 模块,它基于 cookie 提供了简单的认证管理功能。

ngx_http_charset_filter_module

可以将文本类型返回给用户的响应包,按照 nginx.conf 中的配置重新进行编码,再返回给用户

ngx_http_ssi_filter_module

支持 SSI(Server Side Include,服务器端嵌入)功能,将文件内容包含到网页中并返回给用户

ngx_http_postpone_filter_module

仅对 HTTP 包体做处理。它仅应用于 subrequest 产生的子请求。它使得多个子请求同时向客户端发送响应时能够有序,所谓的"有序"是指按照构造子请求的顺序发送响应。

ngx_http_gzip_filter_module

对特定的 HTTP 响应包体(如网页或者文本文件)进行gzip压缩,再把压缩后的内容返回给用户

ngx_http_range_header_filter_module

支持range协议

ngx_chunked_filter_module

支持 chunk 编码

ngx_http_header_filter_module

仅对 HTTP 头部做处理。该过滤模块将会把 r->headers_out 结构体中的成员序列化为返回给用户的 HTTP 响应字节流,包括响应行(如 HTTP/1.1 200 OK)和响应头部,并通过调用 ngx_http_write_filter_module 过滤模块中的过滤方法直接将 HTTP 包头发送到客户端

ngx_http_write_filter_module

仅对 HTTP 包体做处理。该模块负责向客户端发送 HTTP 响应

2. HTTP 过滤模块开发步骤

  1. 确定源代码文件名称
  2. 创建 config 文件,HTTP_MODULES 改为 HTTP_FILTER_MODULES 变量,多个源代码文件实现 1 个 HTTP 过滤模块时,需在 NGX_ADDON_SRCS 变量中添加其他源代码文件
  3. 定义过滤模块
  4. 处理感兴趣的配置项
  5. 实现初始化方法:初始化方法就是把模块中处理HTTP头部的ngx_http_output_header_filter_pt方法与处理HTTP包体的ngx_http_output_body_filter_pt方法插入到过滤模块链表的首部。
  6. 实现处理 HTTP 头部的方法:实现 ngx_http_ouput_header_filter_pt 原型的方法,用于处理 HTTP 头部
  7. 实现处理 HTTP 包体的方法:实现 ngx_http_ouput_body_filter_pt 原型的方法,用于处理 HTTP 包体
  8. 编译安装

转载于:https://www.cnblogs.com/jimodetiantang/p/9246041.html

Nginx之HTTP过滤模块相关推荐

  1. 《深入理解Nginx》阅读与实践(四):简单的HTTP过滤模块

    一.Nginx的HTTP过滤模块特征 一个请求可以被任意个HTTP模块处理: 在普通HTTP模块处理请求完毕并调用ngx_http_send_header()发送HTTP头部或调用ngx_http_o ...

  2. Nginx深入详解之过滤模块

    一.模块简介 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理.它的处理时间在获取回复内容之后,向用户发送响应之前.它的处理过程分为两个阶段,过滤HTTP回复和头部和主体 ...

  3. Nginx开发一个简单的HTTP过滤模块

    本文将学些开发一个简单的HTTP过滤模块,它能够对Content-Type为text/plain的包体前加上前缀字符串prefix. <一> 过滤模块的调用顺序 过滤模块可以叠加,也就是说 ...

  4. Nginx 过滤模块

    Nginx 过滤模块 过滤模块简介 执行时间和内容 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理.它的处理时间在获取回复内容之后,向用户发送响应之前.它的处理过程分为 ...

  5. 【nginx 扩容及常用模块扩展】

    Nginx高级 第一部分:扩容 通过扩容提升整体吞吐量 1.单机垂直扩容:硬件资源增加 云服务资源增加 整机:IBM.浪潮.DELL.HP等 CPU/主板:更新到主流 网卡:10G/40G网卡 磁盘: ...

  6. 安装好的nginx安装新的模块

    在工作中,经常会遇到nginx缺少某个模块,但又是线上环境,这样我们需如何解决? 1,查看安装的版本,如果有安装包就更好,没有去官网下载 nginx -v(小写的v) 2,查看nginx现有安装的模块 ...

  7. Linux的Nginx七:对比|模块

    对比 1.并发 Apache提供了几百个模块,模块就意味着功能,但作为一个Apache服务器最多只有2000多的并发量,Nginx提供的模块也就几十个,但他却可以提供20000的并放量. 2.异步 N ...

  8. Linux的Nginx四:功能|模块

    一.功能 基本HTTP功能 a)提供静态文件和index文件,处理静态文件,索引文件以及自动索引,打开文件描述符缓存: b)使用缓存加速反向代理,反向代理加速(无缓存),简单的负载均衡和容错: c)使 ...

  9. nginx源码分析—模块及其初始化

    Content 0. 序 1. nginx有哪些模块? 2. nginx如何描述这些模块? 2.1 模块数据结构 2.1.1 ngx_module_t结构 2.1.2 ngx_command_t结构 ...

最新文章

  1. 中国×××的“超级无敌”玩法
  2. UA MATH571B 试验设计 QE练习题1
  3. AndroidStudio安卓原生开发_UI控件_TextView_Button_EditText---Android原生开发工作笔记97
  4. 零起点英语_【德国零起点】05—变元音字母
  5. php 学习笔记之搭建开发环境(mac版)
  6. Unity AssetStore提示You Are Currently Offline
  7. docker安装Lefse和分析流程
  8. oracle中date错误,ORA-01830: date format picture ends before converting entire input string
  9. 恢复matlab文件关联
  10. logistic regression(二项 logistic 与 多项logistic )
  11. ROUND_UP、ROUND_DOWN、ROUND_HALF_UP(BigDecimal四舍五入)、ROUND_HALF_DOWN
  12. CAD二次开发学习笔记四(得到选中的实体,修改实体,如等分线段)
  13. 怎么设置邮箱收发服务器
  14. windows检测端口的工具-PsTools
  15. [WOJ1583]向右看齐
  16. 【菜鸟窝阿里算法专家Chris】当机会出现时,多一种武器,就多一分机会。
  17. 通过IDM提高QQ群文件下载速度
  18. android串口通信——身份证识别器
  19. 计算机access的应用,部署 Access 应用程序
  20. 三维空间中的平面方程

热门文章

  1. .yaml 文件格式简介
  2. 3.C#中泛型类的进一步探讨
  3. 在android上移植ios
  4. Spring的生命周期
  5. OSPF:MTU不一致导致的邻接关系问题
  6. CISCO-CCNA课程介绍
  7. 关于base target=_self 等
  8. C语言利用循环判断大月小月,对大月和小月进行判断
  9. java异常怎么输出到页面_怎么把抛出的异常信息输出到SWING 界面上
  10. 4.3.9 ICMP协议