Nginx模块和请求处理流程简介

简介:

   Nginx由内核和模块组成的,其中内核完成的工作比较简单,仅仅通过查找配置文件见客户端请求映射到一个location block,然后又这个location block中所配置的每个指令将会启动不同的模块去完成相应的工作。

一、nginx模块

(1)从结构上nginx分为核心模块,基础模块和第三方模块,例如

HTTP模块、MAIL模块、EVENT模块属于核心模块;

HTTP ACCESS模块、HTTP REWRITE模块、HTTP FastCGI模块、HTTP PROXY模块属于基础模块;

HTPP UPSTREAM REQUEST HASH模块属于第三方模块;

(2)从功能上分为HANDLERS、PROXIES、FILTERS三类

HANDLERS只能有一个,它直接处理请求并进行输出内容和修改HEADERS信息等操作;

PROXIES这些模块主要与后端一些服务比如real server等进行交互,实现服务代理和负载均衡等功能;

FILTERS模块主要是对输出的内容进行修改,最后由Nginx输出;


二、nginx模块常规处理HTTP请求和响应的过程,见下图

wKiom1UBrsXgGjsqAAD8eJA61UQ852.jpg




本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1619920,如需转载请自行联系原作者

相关文章
|
2月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
89 6
|
3月前
|
Java 应用服务中间件 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
|
4月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
63 1
|
4月前
|
应用服务中间件 nginx
百度搜索:蓝易云【HTTP请求是如何关联Nginx server{}块的?】
总结来说,Nginx中的 `server{}`块用于关联HTTP请求和虚拟主机,通过配置不同的 `server{}`块,可以实现多个域名或IP地址的请求分发和处理。这样,Nginx可以根据不同的请求来提供不同的服务和内容。
38 0
|
8天前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
20 3
|
1月前
|
前端开发 应用服务中间件 nginx
使用nginx-http-concat资源请求合并功能 优化网站响应
使用nginx-http-concat资源请求合并功能 优化网站响应
13 0
|
2月前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
34 0
|
2月前
|
算法 应用服务中间件 网络安全
windows下采用 nginx配置websocket支持wss流程
windows下采用 nginx配置websocket支持wss流程
|
3月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
94 0
|
4月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
43 0