Nginx 架构篇 - 详解Http过滤模块的调用流程

上节梳理了http执行的11各阶段,下面我们开始学习http过滤模块的调用流程,有想了解执行流程和原理的同学翻我以前的笔记。

替换响应中的字符串:sub模块

功能:将响应中的指定字符串,替换成新的字符串。本模块可以在nginx的回应中查找和替换文本.在编译nginx时必需加上–with-http_sub_module option

location / {
  sub_filter      </head>
  '</head><script language="javascript" src="$script"></script>';
  sub_filter_once on;
}

用过滤模块在http响应的前后添加内容 :addition模块

功能:在响应前或者响应后增加内容,而增加内容的方式是通过新增子请求的响应完成。

需要安装扩展:本模块可以在nginx的回应中查找和替换文本.在编译nginx时必需加上./configure --with-http_addition_module

location / {
  add_before_body   /before_action;
  add_after_body    /after_action;
}

Http框架提供的变量

  • http请求相关的变量
  • TCP连接相关的变量
  • Nginx处理请求过程中产生的变量
  • 发送http响应时相关的变量
  • Nginx系统变量

变量详解:http请求相关的变量

arg_参数名 URL中某个具体参数值
query_string 与args变量完全相同
args 全部url参数
is_args 如果请求url中有参数返回?否则返回空
content_length http请求中标识包体长度的content_length头部的值
content_type 标识请求包体类型content_type头部的值

变量详解:TCP连接相关的变量

uri 请求URI(不同于url,不包括?后的参数)
document_uri 与uri完全相同
request_uri 请求的url(包括完整的参数)
scheme 协议名 http或者https
request_method 请求方法 GET/POST
request_length 所有请求内容的大小
remote_user 由Http Basic Auth协议传入的用户名	

变量详解: Nginx系统变量

功能:http_头部名称:返回一个具体请求头部的值

http_host
http_user_agent
http_referer
http_via
http_x_forwarded_for
http_cookie
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章