自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(943)
  • 问答 (3)
  • 收藏
  • 关注

原创 ngx_init_cycle

在。

2026-01-21 13:26:52 628

原创 Linux环境,nginx-1.24.0 源码分析

2026-01-13 01:47:19 319

原创 Linux环境,nginx-1.24.0 源码分析

在。

2026-01-13 01:45:51 584

原创 下载和安装 Git

Git 官方网站:https://git-scm.com/nextnextinstall查看版本信息验证安装是否成功克隆一个仓库(从 GitHub 下载项目)命令行:克隆到绝对路径(如 D 盘的 projects 文件夹)

2026-01-12 23:34:50 78

原创 ngx_http_variable_t

变量叫什么name怎么读data怎么写data有什么特性flags如何高效访问index当 Nginx 启动时,会注册所有内置变量(如$host等)到全局变量哈希表中。模块也可以通过注册自定义变量。在处理每个 HTTP 请求时,Nginx 利用该结构体动态获取或设置变量值,支撑了配置文件中强大的变量替换能力。

2026-01-12 18:10:42 513

原创 ngx_http_core_variables

这个数组是 Nginx变量系统的基石高性能:常用变量(如 host、user-agent)直接映射到结构体字段,避免哈希查找。灵活性:通过*_prefix机制支持无限扩展(如$http_xxx安全性:区分只读/可写变量(如args可写,uri不可写)。可观测性:提供丰富的请求/响应/连接/系统指标。

2026-01-12 17:48:51 599

原创 ngx_hash_keys_array_init

在。

2026-01-11 22:12:45 293

原创 struct sockaddr

特性类型通用地址指针IPv4 专用地址指针用途系统调用接口(如bind实际操作 IPv4 地址字段访问不能直接访问 IP/端口可直接访问sin_portsin_addr地址族任意(AF_INET, AF_INET6…)仅 AF_INET大小通常 16 字节通常 16 字节(与 sockaddr 一致)转换需从具体类型强制转换而来需从通用类型强制转换回来(需检查族)

2026-01-10 13:51:48 334

原创 ngx_epoll_module

在。

2026-01-07 17:32:33 772

原创 epoll

epoll 是 Linux 内核提供的一种高性能 I/O 事件通知机制,属于技术,用于高效地监听和管理大量文件描述符(file descriptors, FDs)上的 I/O 事件(如可读、可写、异常等)。它是 select 和 poll 的改进版,特别适用于高并发网络服务器(如 Nginx、Redis、HAProxy 等)。

2026-01-06 14:02:48 651

原创 配置指令-worker_connections

在属于模块的配置指令。

2026-01-05 23:06:27 742

原创 ngx_event_core_module

在。

2026-01-05 23:05:44 720

原创 配置指令-events

在属于2. 指令类型1. 该指令只能出现在主配置上下文(main context) 中。主配置上下文指的是 Nginx 配置文件的最顶层,即不在任何 块内部的位置。该指令必须带一个配置块(即花括号 ),用于包含子指令。语法特征:指令后跟 ,形成一个配置上下文块。该指令不接受任何参数(除了后面的 块)。非法写法:4. 三者组合的完整语义等价于告诉 Nginx: 函数是 Nginx 配置解析阶段用于处理 配置块的核心函数。用于在解析配置文件时解析 指令这是一个静

2026-01-05 14:33:34 943

原创 ngx_count_modules

在。

2026-01-04 20:44:30 641

原创 ngx_module_ctx_index

在。

2026-01-04 20:42:47 878

原创 配置指令-worker_processes

指令定义在模块中在。

2026-01-03 13:26:05 452

原创 ngx_atoi

在。

2026-01-03 00:14:38 465

原创 ngx_core_module 模块

该函数的核心作用设置默认配置值:如daemonmaster等。校验 CPU 亲和性配置一致性。初始化 PID 文件路径,并生成.oldbin路径(用于平滑升级)。在 root 启动时自动切换到 nobody 用户/组(提升安全性)。初始化锁文件路径,并确保 reload 时锁文件路径不变(避免多进程竞争问题)。该函数是 Nginx 启动流程中配置生效前的关键一步,确保所有核心参数都有合理默认值,并完成系统资源路径的标准化。├── 1. 初始化默认配置值。

2026-01-01 16:11:40 572

原创 ngx_conf_handler

的核心作用指令路由:根据指令名找到对应的模块和。上下文校验:确保指令用在允许的配置块中(如httpserver语法校验块指令必须有;普通指令必须有;;参数数量必须合法。配置定位:确定该指令的值应写入哪个配置结构体(main/srv/loc)。调用处理函数:执行模块注册的set函数完成实际配置。错误反馈:提供清晰的错误信息(未知指令、位置错误、参数错误等)。这是 Nginx高度模块化、可扩展配置系统的核心实现,也是其配置语法强大而严谨的基础。名称过滤→ 是我认识的指令吗?模块过滤。

2025-12-31 17:09:42 738

原创 ngx_conf_parse

的核心作用支持三种解析模式主配置文件(nginx.conf配置块({}内部)命令行参数(-g逐 token 解析使用提取指令。识别;(单行)、(块开始)、(块结束)、EOF。指令分发普通指令 →自定义上下文 →错误处理严格括号不匹配、未知指令、参数错误等都会立即失败。资源管理完善自动分配/释放 buffer。正确关闭文件。支持嵌套解析(通过prev恢复上下文)。调试支持用于-T输出完整配置。

2025-12-30 13:32:05 742

原创 ngx_array_push

在。

2025-12-29 21:31:29 341

原创 ngx_conf_read_token

是 Nginx 配置语法解析的词法分析器(lexer)逐字节扫描配置文件识别 token 边界(考虑引号、转义、注释)构建参数数组cf->args返回 token 类型供语法分析器使用。

2025-12-29 20:51:51 720

原创 ngx_read_file

ngx_read_file 的核心作用从文件指定偏移 offset 读取最多 size 字节到 buf。自动根据平台选择 pread(推荐)或 lseek + read(兼容)。出错时记录日志并返回 NGX_ERROR。成功时返回实际读取字节数,并更新 file->offset(逻辑偏移)和(在非 pread 路径下)file->sys_offset(系统偏移)。是 Nginx 文件 I/O 抽象层的关键函数,被用于静态文件服务、日志读取、配置加载等场景。

2025-12-28 18:26:45 608

原创 ngx_fd_info

在fstat。

2025-12-26 15:22:44 326

原创 ngx_open_file

用于封装系统调用。

2025-12-26 14:45:41 820

原创 ngx_destroy_cycle_pools

目的:安全释放配置解析过程中使用的两个内存池,防止内存泄漏。调用时机:通常在配置解析失败、初始化中断、或重载配置前清理旧资源时调用。顺序:先销毁temp_pool,再销毁pool。虽然两者通常是独立的,但按“临时 → 持久”的顺序销毁更符合资源生命周期逻辑。

2025-12-25 22:29:25 278

原创 ngx_conf_param

在。

2025-12-25 22:15:34 296

原创 ngx_array_create

是一个工厂函数在内存池中分配结构体;调用为其分配初始数据缓冲区并设置字段;成功则返回数组指针,失败则返回NULL。这种设计将“分配 + 初始化”封装在一起,简化了动态数组的创建过程。

2025-12-25 18:00:08 315

原创 ngx_cycle_modules

的作用是:为当前 Nginx 运行周期(cycle)分配并初始化一个模块指针数组,将编译时确定的静态模块列表(ngx_modules)复制进去,供后续模块初始化(如调用 init_module 回调)等阶段使用。所有模块在编译时注册到 ngx_modules;每个 cycle 拥有自己独立的模块列表副本;便于支持配置重载(reload)时重建 cycle 而不影响运行中的旧 cycle。

2025-12-24 21:55:09 295

原创 ngx_strlow

在。

2025-12-24 19:04:38 425

原创 ngx_queue_init

在->;->

2025-12-24 15:42:11 168

原创 ngx_list_init

void *elts;// 指向实际元素数组的指针// 当前已使用的元素个数// 指向下一个 part// 指向最后一个 part// 第一个 part(内嵌,非指针)// 每个元素的大小(字节)// 每个 part 可容纳的元素个数// 所属的内存池所以就是初始化这样一个结构:分配第一个 part 的元素数组,并设置好各个字段。是 Nginx 列表结构的初始化函数为列表的第一个数据块分配内存(n * size字节);初始化列表头结构中的各个字段;

2025-12-23 15:59:14 448

原创 ngx_str_rbtree_insert_value

函数作用该函数实现了基于字符串的红黑树插入比较逻辑整数 key(通常为哈希值)→ 快速过滤;字符串长度→ 处理哈希冲突;字符串内容(字典序)→ 精确比较。它只负责定位插入位置并建立父子关系,不负责红黑树的再平衡。分离“比较逻辑”与“平衡逻辑”,使红黑树可复用于不同键类型。

2025-12-22 21:23:25 664

原创 ngx_rbtree_init

在2. 代码分析这段代码是 Nginx 1.24.0 源码中的一个宏定义:,用于初始化一个红黑树(Red-Black Tree)结构。在 Nginx 中,红黑树是一种高效的自平衡二叉搜索树,常用于定时器管理、缓存索引、等需要快速插入、查找和删除的场景。这是一个带参数的 C 宏,接受三个参数:作用:初始化哨兵节点 。详细说明:在红黑树实现中,哨兵节点(sentinel) 是一个特殊的“空”节点,通常用作叶子节点的子节点(代替 ),简化边界条件处理。 是另一个宏哨兵节点不存储实际数据,

2025-12-22 17:59:34 459

原创 ngx_rbtree_sentinel_init

在。

2025-12-22 17:54:51 221

原创 ngx_array_init

void *elts;// 指向元素存储区// 当前元素个数// 单个元素大小(字节)// 已分配的容量(最多可存元素数)// 所属内存池。

2025-12-22 14:05:13 236

原创 ngx_pstrdup

在指定内存池中分配一块与源字符串等长的内存,并将源字符串的内容(src->data的src->len字节)完整复制过去,返回新内存的指针。

2025-12-21 19:23:25 332

原创 ngx_pnalloc

在。

2025-12-21 19:12:03 318

原创 ngx_destroy_pool

执行所有注册的清理函数(如关闭 fd、释放外部资源)。(调试时)打印将要释放的内存地址和未使用空间。释放所有 large 分配的内存块(直接 malloc 的大内存)。释放内存池自身所有 ngx_pool_t 块(包括主块和后续扩展块)。

2025-12-21 16:02:05 518

原创 ngx_pcalloc

在。

2025-12-21 10:57:10 421

springboot-MyBatisPlus

springboot-MyBatisPlus

2023-03-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除