zoukankan      html  css  js  c++  java
  • Nginx之HTTP过滤模块

    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. 编译安装
  • 相关阅读:
    《大道至简》读后笔记_3
    学习进度表_十周
    《大道至简》读后笔记_2
    《大道至简》读后笔记_1
    《梦断代码》读后笔记_3
    《梦断代码》读后笔记_2
    学习进度表_九周
    《梦断代码》读后笔记_1
    小组评价
    团队效绩计划
  • 原文地址:https://www.cnblogs.com/jimodetiantang/p/9246041.html
Copyright © 2011-2022 走看看