欢迎光临
我们一直在努力

Nginx基础教程(57)Nginx HTTP子请求之数据回传模块:探秘Nginx子请求:让服务器内部“悄悄话”传递数据更高效

你以为Nginx只会转发请求?它还能让服务器内部发起“子请求”悄悄传递数据,就像公司部门间的机密对话。

理解Nginx子请求:什么是“请求中的请求”

简单来说,Nginx子请求是由Nginx正在处理的请求在Nginx内部发起的一种级联请求。它们在外观上很像HTTP请求,但实现上却和HTTP协议乃至网络通信一点儿关系都没有。它是Nginx内部的一种抽象调用,目的是为了方便用户把“主请求”的任务分解为多个较小粒度的“内部请求”。

  • 主请求:由HTTP客户端从Nginx外部发起的请求。
  • 子请求:由Nginx正在处理的请求在Nginx内部发起的一种级联请求。

当一个请求发起一个“子请求”的时候,按照Nginx的术语,习惯把前者称为后者的“父请求”。值得一提的是,Apache服务器中其实也有“子请求”的概念。

子请求的应用场景:何时需要这种“内部对话”

子请求在以下场景中特别有用:

  • 身份验证:通过ngx_http_auth_request_module模块,基于子请求的结果实现客户端授权。
  • 内容组装:通过ngx_http_addition_module模块,在响应前后添加子请求返回的内容。
  • 数据聚合:从多个内部接口获取数据并组装成一个统一的响应。
  • 权限检查:在继续处理请求前,验证用户是否有权限访问特定资源。
  • 核心模块深度解析:子请求的数据回传机制

    1. ngx_http_addition_module模块

    ngx_http_addition_module模块是一个在响应之前和之后添加文本的过滤器。它可以通过子请求响应内容来更改response响应体,位置可以是response前或者后。

    核心指令:

    • add_before_body uri;:在响应正文之前添加给定的子请求而返回的文本。
    • add_after_body uri;:在响应正文之后添加给定的子请求而返回的文本。
    • addition_types mime-type …;:除了“text/html”之外,还允许在具有指定MIME类型的响应中添加文本。

    此模块默认未构建,应使用–with-http_addition_module配置参数启用。

    2. ngx_http_auth_request_module模块

    赞(0)
    未经允许不得转载:171主机测评 » Nginx基础教程(57)Nginx HTTP子请求之数据回传模块:探秘Nginx子请求:让服务器内部“悄悄话”传递数据更高效
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址