nginx源码分析-3

这一章内容讲述nginx中的事件是如何一步步添加到epoll实例中的。

  1. 在初始化http连接的函数ngx_http_init_connection中,nginx为http连接初始化了处理请求的回调函数,之后调用ngx_handle_read_event函数对可读数据进行处理。这里只为连接设置read而没有设置write是因为nginx使用的是异步非阻塞的事件驱动模型。由于是异步的,写事件的触发往往是由于之前的某个读事件处理过程中需要往客户端发送响应,因此写事件是由读事件触发的。

请添加图片描述

  1. ngx_handler_read_event:具体代码如下图所示。nginx可以根据配置选择不同的事件处理模型。ngx_add_event是一个函数指针,在启动时nginx会根据配置选择对应的事件模块,并将函数指针赋值给ngx_event_action中的相应成员。

请添加图片描述

请添加图片描述

  1. 以epoll为例,在ngx_epoll_init初始化时,会将ngx_epoll_module_ctx.actions赋值给ngx_event_actions。

在这里插入图片描述

  1. 以下是epoll处理模型对应的add_event函数,在该函数中会调用epoll_ctl来注册或修改文件描述符上的事件。epoll_ctl具有以下四个参数:
    • epfd:epoll的文件描述符
    • op:操作类型,可以是添加、修改、删除事件
    • fd:要操作的文件描述符
    • event:指定事件类型和其它相关信息

请添加图片描述

  1. 通过上述流程,nginx可以将请求连接的相关事件注册到epoll上进行监听,比如监听一个连接的读事件,则当连接上有数据可读时,就会触发epoll相关事件的handler,比如ngx_http_wait_request_handler。从而对请求进行处理。处理请求的流程在下一章节进行介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04 安装教程

系统下载 Ubuntu官网下载 清华源镜像 安装流程 1. 选择安装语言 2. 选择是否在安装时更新 为了系统安装速度一般选择安装时不更新,安装后自行更新 3. 选择系统语言和键盘布局 4. 选择安装模式 5. 配置网络信息 6. 设置静态IP 7. 配置代理信息 8. 配置Ubuntu镜像…

非常好用的ocr图片文字识别技术,识别图片中的文字

目录 一.配置环境 二.应用 2.1常见图片识别 2.2排版简单的印刷体截图图片识别 2.3竖排文字识别 2.4英文识别 2.5繁体中文识别 2.6单行文字的图片识别 三.参考 一.配置环境 pip3 install cnocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install onnxruntime…

在电脑上免费分区的 5 个有效磁盘分区软件工具

磁盘分区可能是一个脆弱而复杂的过程,磁盘崩溃或用户设备受到病毒攻击的风险很高。因此,它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。 什么是磁盘分区工具? …

在STM32中集成TSL2561光强传感器的开发和调试

在STM32中集成TSL2561光强传感器的开发和调试是一个常见的应用场景。TSL2561是一款数字光传感器,能够测量可见光和红外光的光强,并通过I2C接口将数据传输给微控制器。下面将为您介绍在STM32中集成TSL2561传感器的开发步骤,并附上相应的代码示…

Web常用的编码和解码技术

文章目录 一、URI的编码与解码1.1 URI介绍1.2 什么是encodeURI1.3 什么是encodeURIComponent1.4 应用场景1.5 URI解码1.6 扩展:内置对象URL 二、字符串的Base64编码与解码2.1 ASCII字符编解码2.2 非ASCII字符编解码 一、URI的编码与解码 1.1 URI介绍 URI指的是统一…

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息(Message)。 3.当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk&#xff…

Linux系统下隧道代理HTTP

在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题,主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前,需要了解几个关键概念:代理服务器、隧道代理和HTTP协议。代理…

VsCode的介绍和入门详细讲解

VS Code(Visual Studio Code)是由 Microsoft 开发的一款轻量级开源编辑器,支持多种语言和框架的编写、调试和测试。它拥有丰富的扩展生态系统,可以满足不同开发者的需求。 下面是 VS Code 的入门详细讲解: 下载和安装…

使用Python绘制各种图表

1、折线图(Line Chart) import matplotlib.pyplot as plt # 数据 x [1, 2, 3, 4, 5] y [2, 4, 1, 3, 7] # 绘制折线图 plt.plot(x, y) plt.title(折线图示例) plt.xlabel(X轴) plt.ylabel(Y轴) plt.show() 2、柱状图(Bar…

算法专题四:前缀和

前缀和 一.一维前缀和(模板):1.思路一:暴力解法2.思路二:前缀和思路 二. 二维前缀和(模板):1.思路一:构造前缀和数组 三.寻找数组的中心下标:1.思路一:前缀和 四.除自身以外数组的乘积&#xff…

3、Git分支操作与团队协作

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…

GLTF 编辑器实现逼真3D动物毛发效果

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 要实现逼真的3D动物毛发效果,可以采用以下技术和方法&…

接口和抽象类

在Java编程语言中,抽象类和接口都是用于定义抽象概念的重要工具。它们都提供了一种方式来创建可重用的代码,并且都可以被其他类继承或实现。然而,尽管它们有一些相似之处,但也存在一些显著的区别。本文将探讨抽象类和接口的相同点…

Vue学习day_03

普通组件的注册 局部注册: 创建一个components的文件夹 在里面写上对应的.vue文件 在对应的vue里面写上对应的3部分 template写上对应的核心代码 盒子等 style 写上对应的css修饰 在App.vue里面进行引用 import 导包 格式是 import 起个名字 from 位置 在写一个component…

AutoSAR(基础入门篇)3.3-Autosar中RTE的数据一致性与Interface接口

目录 一、RTE的数据一致性 1、什么是数据一致性 2、数据一致性的实现机制 2.1、利用RTE管理<

3d导入模型怎样显示原本材质---模大狮模型网

要在导入3D模型时保留原本的材质&#xff0c;您可以尝试以下方法&#xff1a; 导入前检查文件格式&#xff1a;确保您所使用的3D软件支持导入模型的文件格式。不同的软件对文件格式的支持有所差异&#xff0c;选择正确的文件格式可以更好地保留原始材质。 使用正确的材质库&am…

【Python篇】python库讲解(wordcloud | jieba)

文章目录 &#x1f354;jieba库&#x1f354;wordcloud库&#x1f339;解释 &#x1f354;jieba库 jieba库是一个流行的中文分词工具&#xff0c;它基于统计算法和词频字典&#xff0c;能够将连续的汉字序列切割成有意义的词语。下面是对jieba库的简要理论说明&#xff1a; 分…

云计算基础、Issa、Pssa、Saas区别

一、了解云计算 云计算&#xff08;cloud computing&#xff09;是分布式计算的一种&#xff0c;指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序&#xff0c;然后&#xff0c;通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算…

复数值神经网络可能是深度学习的未来

一、说明 复数这种东西,在人的头脑中似乎抽象、似乎复杂,然而,对于计算机来说,一点也不抽象,不复杂,那么,将复数概念推广到神经网络会是什么结果呢?本篇介绍国外的一些同行的尝试实践,请我们注意观察他们的进展。

【机组期末速成】指令系统|机器指令概述|操作数类型与操作类型|寻址方式|指令格式

&#x1f3a5; 个人主页&#xff1a;深鱼~&#x1f525;收录专栏&#xff1a;计算机组成原理&#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 目录 前言&#xff1a; 一、本章考点总览 二、考点分析 1、以下有关指令系统的说法中错误的是&#xff08; &#xff09;。 2…