news 2026/2/12 20:31:55

Nginx源码学习:Nginx的“内部电话系统“,Master如何用5条命令指挥Worker

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx源码学习:Nginx的“内部电话系统“,Master如何用5条命令指挥Worker

一、Master和Worker之间需要一条"电话线"

Nginx的进程模型是一个Master带一堆Worker。Master负责管理——读配置、fork子进程、监听信号、热升级;Worker负责干活——accept连接、处理请求、发送响应。分工很清晰,但带来一个直接的问题:Master怎么告诉Worker该干嘛?

最直觉的答案是Unix信号。Master用kill()给Worker发个SIGQUIT,Worker收到后优雅退出。Nginx确实也这么干了。但信号有个致命短板:它只能传递一个信号编号,不能传数据。

考虑这个场景:Master fork出一个新Worker进程,现有的Worker需要知道"有个新兄弟来了,它的PID是多少,它的通信端口是什么"。这种结构化数据,光靠一个信号编号搞不定。

再看一个更硬核的场景:Nginx需要在进程间传递文件描述符。你可能会想——fd不就是个整数吗,传过去不就完了?问题在于文件描述符是进程私有的。进程A的fd 7和进程B的fd 7可能指向完全不同的内核对象。要让进程B拿到和进程A"同一个"文件描述符,必须用Unix域套接字的SCM_RIGHTS辅助消息机制——这是操作系统提供的一种特殊能力,能把一个进程的文件描述符"复制"到另一个进程的文件描述符表中,让两个进程共享同一个底层socket endpoint。

所以Nginx设计了一套基于socketpair的进程间通信机制,源码集中在ngx_channel.h(35行)和ngx_channel.c(254行)。加上ngx_proce

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/13 2:03:04

例说FPGA:可直接用于工程项目的第一手经验【3.1】

第13章 工程实例11——FX2硬件和驱动安装以及Bulkloop实验 本章导读 本章不涉及FPGA工程,主要是对Cypress的USB2.0控制器芯片CY7C68013进行基本的编程测试,为后续的FPGA与其通信做准备工作。 13.1 功能概述 FX2(CY7C68013)是一款集成8051单片机的灵活的USB2.0控制器,其…

作者头像 李华
网站建设 2026/2/13 2:48:37

ccmusic-database开源镜像价值:省去30小时CV模型微调过程,开箱即用

ccmusic-database开源镜像价值:省去30小时CV模型微调过程,开箱即用 你有没有试过为一段30秒的钢琴曲判断它属于古典、爵士还是新世纪音乐?或者想快速给一批用户上传的短视频配乐打上“流行”“摇滚”“电子”标签?传统做法是——…

作者头像 李华
网站建设 2026/2/8 13:04:34

计算机毕业设计springboot食堂食材管理系统 基于SpringBoot的餐饮原材料智能管控平台 SpringBoot框架下的食堂供应链与库存信息化系统

计算机毕业设计springboot食堂食材管理系统906k1r0g (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着社会对食品安全与营养健康关注度的持续提升,食堂作为学校、…

作者头像 李华
网站建设 2026/2/12 1:27:16

计算机毕业设计springboot疾病风险预警平台 基于SpringBoot的健康风险监测与预警管理系统 智慧医疗环境下慢性病早期预警服务平台

计算机毕业设计springboot疾病风险预警平台qb6a4nvy (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着信息技术的迅猛发展和医疗健康数据的日益积累,利用大数据分…

作者头像 李华
网站建设 2026/2/8 13:04:14

Whisper-large-v3语音识别镜像部署一文详解:Ubuntu+CUDA+PyTorch全栈配置

Whisper-large-v3语音识别镜像部署一文详解:UbuntuCUDAPyTorch全栈配置 1. 为什么选Whisper-large-v3?它到底能做什么 你有没有遇到过这些场景: 开会录音堆成山,却没人愿意花两小时逐字整理;收到一段30分钟的粤语采…

作者头像 李华
网站建设 2026/2/8 13:03:16

GPEN镜像性能压测报告:单节点QPS达17,P99延迟<3200ms

GPEN镜像性能压测报告&#xff1a;单节点QPS达17&#xff0c;P99延迟<3200ms 1. 什么是GPEN&#xff1f;一把专为人脸而生的AI修复工具 GPEN不是普通意义上的“图片放大器”&#xff0c;它是一套面向真实业务场景打磨出来的人脸专属增强系统。你可能遇到过这些情况&#x…

作者头像 李华