Nginx的模块与工作原理

网站编辑2020-08-31 11:49:21450

  Nginx的模块与工作原理    Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
  
  Nginx的模块从结构上分为核心模块、基础模块和第三方模块,HTTP模块、EVENT模块和MAIL模块等属于核心模块,HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块属于基础模块,而HTTP Upstream RequestHash模块、Notice模块和HTTP Access Key模块属于第三方模块,用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。Nginx的模块从功能上分为如下三类。
  
  ?Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。
  
  ?Filters(过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。
  
  ?Proxies(代理类模块)。此类模块是Nginx的HTTP Up-stream之类的模块,这些模块主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能。图1-1展示了Nginx模块常规的HTTP请求和响应的过程。
  Nginx模块的HTTP请求和响应过程
  图1-1 Nginx模块的HTTP请求和响应过程
  
  在工作方式上,Nginx分为单工作进程和多工作进程两种模式。在单工作进程模式下,除主进程外,还有一个工作进程,工作进程是单线程的;在多工作进程模式下,每个工作进程包含多个线程。Nginx默认为单工作进程模式。Nginx的模块直接被编译进Nginx,因此属于静态编译方式。启动Nginx后,Nginx的模块被自动加载,不像Apache,首先将模块编译为一个so文件,然后在配置文件中指定是否进行加载。在解析配置文件时,Nginx的每个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。

最新推荐

右侧广告图1
  • 云联络中心-包月

    云联络中心为企业提供整体的企业智能化客服平台。打通热线电话、网站、小程序、APP等用户与企业的联系渠道,帮助企业统一管理服务体验,并利用AI能力升级数字员工服务与智能辅助体系,全面提高服务体验与效率。产品开放灵活,帮助企业快速构建个性化的服务流程。

    199.00/月

    限产品首单

  • 数据安全中心

    为客户提供敏感数据自动识别、分级分类、大数据安全审计与数据脱敏等数据安全能力,形成一体化的云上全域数据防泄漏与安全解决方案

    3200.00/月

    典名专属折扣

  • L20 GPU实例gn8is(模型推理)

    采用新一代GPU加速芯片,为智能驾驶、具身智能、模型推理与训练提供算力支持,提供对推理引擎、推理性能、通信效率深度优化的解决方案能力,为AI应用落地与推理加速。

    6929.25/月

    官网折上折,优惠折扣

右侧广告图2