<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[拥抱开源]]></title><description><![CDATA[不忘初心]]></description><link>https://blog.youkuaiyun.com/csdncx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; csdncx]]></copyright><item><title><![CDATA[22. NGINX 线程池深入解析：从 aio 场景到高性能实践]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/163448137</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/163448137</guid><author>csdncx</author><pubDate>Mon, 03 Aug 2026 17:53:12 +0800</pubDate><description><![CDATA[本文深入探讨了NGINX线程池的工作原理及其在高并发场景中的应用。线程池通过将阻塞式I/O操作卸载到独立线程，有效解决了磁盘I/O对worker进程的阻塞问题。文章详细介绍了基础配置方法，包括thread_pool和aio threads指令的使用，并提供了静态文件服务和反向代理缓存的配置示例。此外，还展示了线程池的高级用法，如自定义线程池、分片下载优化，以及模块开发实战——构建异步图片处理模块，通过线程池API实现动态缩略图生成服务。这些方案能显著提升NGINX在磁盘I/O密集场景下的性能表现。]]></description><category></category></item><item><title><![CDATA[HTTP 缓存协议深度解析：状态码与Header]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/163167052</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/163167052</guid><author>csdncx</author><pubDate>Fri, 24 Jul 2026 17:15:46 +0800</pubDate><description><![CDATA[本文系统梳理了HTTP缓存机制，重点解析了强缓存和协商缓存的原理及实现方式。强缓存通过Cache-Control（max-age）和Expires控制，有效期内直接从本地读取（200 from cache）；协商缓存通过Last-Modified/If-Modified-Since和ETag/If-None-Match实现，服务器验证后返回304（使用缓存）或200（返回新内容）。文章还介绍了206分块请求、412等状态码，并通过流程图和报文示例详细展示了缓存决策全过程，帮助开发者从原理层面掌握HTTP缓存]]></description><category></category></item><item><title><![CDATA[21. 深入 Nginx HTTP 缓存源码：CDN功能]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/163112951</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/163112951</guid><author>csdncx</author><pubDate>Wed, 22 Jul 2026 19:25:27 +0800</pubDate><description><![CDATA[本文从源码角度分析了Nginx HTTP缓存的核心实现机制。主要内容包括： 缓存内存组织结构：Nginx使用共享内存存储缓存索引，包含红黑树（快速查找）和LRU队列（淘汰顺序）两种数据结构。每个缓存条目对应一个节点，存储CRC32校验值、引用计数、访问次数等元信息。 内存淘汰策略：当内存不足时，Nginx采用LRU算法从队列尾部开始淘汰，优先移除引用计数为0的节点。节点正在使用时会被移到队列头部避免被误删。 缓存管理机制：Cache Manager进程负责扫描磁盘文件，根据inactive参数清理过期缓存。]]></description><category></category></item><item><title><![CDATA[AMS1117 LDO 稳压器详解与注意事项]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/163053016</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/163053016</guid><author>csdncx</author><pubDate>Mon, 20 Jul 2026 18:31:57 +0800</pubDate><description><![CDATA[AMS1117是一款经典的低压差线性稳压器（LDO），广泛应用于嵌入式系统和消费电子设备中。它通过负反馈系统实现稳压，具有1.1V典型压差、1A输出电流和内置保护功能等特性。输出端必须使用钽电容（10μF~100μF），其等效串联电阻（ESR）能提供关键零点补偿，抑制振荡。若使用低ESR的陶瓷电容，需串联0.5Ω~1Ω电阻。实际应用中需注意输入/输出电容选择、散热问题（功耗计算和散热措施），以及避免输入电压过高或反接。这些要点确保了AMS1117的稳定工作和可靠性。]]></description><category></category></item><item><title><![CDATA[20. 深入 Nginx 信号处理]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/163052796</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/163052796</guid><author>csdncx</author><pubDate>Mon, 20 Jul 2026 18:21:05 +0800</pubDate><description><![CDATA[本文深入分析了 Nginx 的信号处理机制，重点探讨了其 master-worker 进程模型下如何通过信号实现热更新、配置重载和优雅关闭等关键功能。Nginx 的 master 进程通过注册信号处理函数 ngx_signal_handler() 捕获信号，并在主循环中根据标志位执行相应操作，如重启 worker 进程（SIGHUP）、热更新二进制文件（SIGUSR2）或优雅关闭（SIGQUIT）。Worker 进程则响应 master 发送的信号，完成请求处理和资源释放。文章结合源码详细解析了信号注册、处]]></description><category></category></item><item><title><![CDATA[Docker 镜像瘦身：使用 Maven 拆分 Jar 包]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162974148</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162974148</guid><author>csdncx</author><pubDate>Fri, 17 Jul 2026 17:24:35 +0800</pubDate><description><![CDATA[本文介绍了一种优化微服务Docker镜像体积的方法。通过将公共依赖提取到基础镜像，每个微服务只需打包业务代码层，大幅减少镜像体积。具体步骤包括：使用Maven插件将Jar拆分为公共依赖和业务代码，构建基础镜像存放公共依赖，微服务镜像基于基础镜像仅添加业务层。相比传统Fat Jar方式，该方法可显著节省磁盘空间和部署时间。文章还提供了Maven配置示例、Dockerfile编写指南，并对比了优化前后的镜像大小差异，同时建议考虑Spring Boot Layertools进行更精细的分层优化。]]></description><category></category></item><item><title><![CDATA[19. Nginx Stream 模块开发：从入门到实战]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162973741</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162973741</guid><author>csdncx</author><pubDate>Fri, 17 Jul 2026 17:11:05 +0800</pubDate><description><![CDATA[本文深入探讨了Nginx Stream模块的开发方法，从核心架构到实际开发实践。首先介绍了Stream模块的基本概念和与HTTP模块的关键区别，重点分析了其核心数据结构ngx_stream_session_s的生命周期和模块接口。文章随后详细讲解了模块开发的核心流程，包括模块结构体定义、会话处理函数和配置指令注册方法。最后通过一个完整的Stream日志模块开发示例，展示了如何实现连接事件记录功能。该模块能够记录TCP连接的客户端IP、端口、时长等关键信息，为开发者提供了Stream模块开发的实用参考框架。]]></description><category></category></item><item><title><![CDATA[18. Nginx 限流模块源码深度解析：limit_conn / limit_req / limit_rate 实现原理]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162909494</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162909494</guid><author>csdncx</author><pubDate>Wed, 15 Jul 2026 17:04:57 +0800</pubDate><description><![CDATA[本文深入分析Nginx的三大限流模块：连接数限制(limit_conn)、请求速率限制(limit_req)和响应速率限制(limit_rate)。重点剖析了前两者的实现机制：limit_conn基于红黑树和LRU队列精确控制并发连接数；limit_req采用改进的漏桶算法，通过时间戳计算请求配额，支持突发流量处理。两者都通过共享内存实现多worker进程协同，并在NGX_HTTP_PREACCESS_PHASE阶段执行限流判断。文章通过核心数据结构和源码片段，揭示了Nginx限流模块的高效实现原理。]]></description><category></category></item><item><title><![CDATA[17. 深入 Nginx 源码：SSL 模块的设计]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162877616</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162877616</guid><author>csdncx</author><pubDate>Tue, 14 Jul 2026 16:51:33 +0800</pubDate><description><![CDATA[Nginx SSL模块设计解析：从架构到实现 摘要： 本文深入分析了Nginx SSL/TLS支持的两大核心设计。首先探讨了模块无感设计，通过ngx_connection_t结构体和策略模式实现SSL透明化，上层模块无需感知底层加密细节。其次详细剖析了客户端SSL连接建立流程，包括事件驱动的握手机制，展示了Nginx如何通过ngx_ssl_handshake函数实现非阻塞SSL握手。文章揭示了Nginx通过连接抽象层和事件驱动架构实现的高效SSL处理机制，体现了其模块化设计的精妙之处。阅读本文可深入理解Ng]]></description><category></category></item><item><title><![CDATA[16. 深入 Nginx 源码：HTTP 请求解析之旅]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162846757</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162846757</guid><author>csdncx</author><pubDate>Mon, 13 Jul 2026 17:24:39 +0800</pubDate><description><![CDATA[本文深入解析了 Nginx 1.24.0 中 HTTP 请求解析的核心机制，重点分析了请求行和请求头的解析过程。文章首先介绍了 Nginx 采用事件驱动和状态机模型实现高效解析的基本原理，然后详细剖析了核心数据结构 ngx_http_request_t 的关键字段。通过状态机流程图和代码片段，展示了请求行解析的完整状态流转过程，包括从初始状态到方法名、URI 和 HTTP 版本号的逐步解析。这种边读取边解析的方式充分体现了 Nginx 高性能设计的关键所在。]]></description><category></category></item><item><title><![CDATA[Docker 多阶段构建深度实战：Nginx Ingress Controller 的三阶段源码构建]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162818504</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162818504</guid><author>csdncx</author><pubDate>Sun, 12 Jul 2026 21:32:03 +0800</pubDate><description><![CDATA[本文介绍了使用Docker三阶段构建方法制作高效Nginx Ingress Controller镜像的技术方案。通过将构建过程划分为GCC编译Nginx、Golang编译Controller和运行时整合三个阶段，实现了构建环境与运行环境的完全隔离。该方法相比传统单阶段构建，可将镜像体积从1.5GB缩减至50MB左右，提升30倍的存储和传输效率，同时显著降低安全风险。文章详细讲解了每个阶段的设计要点，包括依赖管理、二进制优化和最小化运行时环境配置，为构建生产级云原生组件提供了最佳实践参考。]]></description><category></category></item><item><title><![CDATA[15. Nginx HTTP Filter 开发实战：Header 与 Body Filter全解析]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162818438</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162818438</guid><author>csdncx</author><pubDate>Sun, 12 Jul 2026 21:22:32 +0800</pubDate><description><![CDATA[本文详细介绍了如何开发 Nginx HTTP Filter 模块，重点讲解了 header filter 和 body filter 的实现方法。文章首先阐述了 Filter 模块在 Nginx 处理流程中的定位，指出其工作在请求/响应处理链条上，可对所有经过的数据进行透明加工。接着通过两个实战案例展开：header filter 部分演示了如何为所有响应添加安全相关的标准头部（如 X-Content-Type-Options）；body filter 部分则展示了响应体内容替换的实现，包括上下文管理、分块]]></description><category></category></item><item><title><![CDATA[14. 深入 Nginx 事件模块：从源码到实战的 event 用法详解]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162766316</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162766316</guid><author>csdncx</author><pubDate>Fri, 10 Jul 2026 17:23:11 +0800</pubDate><description><![CDATA[前面我们实现了延迟响应模块的核心逻辑，本节将补全模块的编译与集成细节，让你能够真正跑起来。将以下完整代码追加到/* 模块指令定义 */0,NULL },/* 模块上下文 *//* 模块定义 *//* delay 指令解析函数 *//* 创建 location 配置 *//* 合并 location 配置 */delay指令仅允许在location块内出现（），接收一个时间参数。可以解析50005s5000ms等形式，统一转为毫秒存入delay。]]></description><category></category></item><item><title><![CDATA[Linux X11 串流到 Windows Xming：原理与实践]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162735555</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162735555</guid><author>csdncx</author><pubDate>Thu, 09 Jul 2026 17:22:24 +0800</pubDate><description><![CDATA[本文介绍了如何在Windows主机上通过Xming和Docker容器实现Linux图形界面程序的远程显示。主要内容包括： X11协议原理：采用C/S架构，实现网络透明性，允许远程X客户端程序在本地X服务端显示窗口。 环境搭建： Windows安装Xming作为X11服务端 Docker Desktop配置WSL2后端 VS Code安装Dev Containers扩展 容器构建： 基于Ubuntu 22.04创建包含Qt6、X11工具和中文字体的Docker镜像 通过Dev Container配置文件设置D]]></description><category></category></item><item><title><![CDATA[13. 深入 Nginx 日志模块：源码与开发实战]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162735104</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162735104</guid><author>csdncx</author><pubDate>Thu, 09 Jul 2026 17:09:28 +0800</pubDate><description><![CDATA[/ 编译后的操作链// 原始操作数组// 参数（变量名等）// ...Nginx 将log_format定义的组合字符串（如）编译成一系列操作，运行时遍历操作链生成日志行。# 全局仅输出警告及以上events {http {server {listen 80;# 为当前虚拟主机打开 info 级别错误日志root html;# 仅记录状态码 >= 400 的请求到独立文件。]]></description><category></category></item><item><title><![CDATA[Dev Containers 实战：告别环境搭建噩梦]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162701426</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162701426</guid><author>csdncx</author><pubDate>Wed, 08 Jul 2026 16:49:38 +0800</pubDate><description><![CDATA[（开发容器）是 Visual Studio Code 的一项核心功能，允许开发者使用Docker 容器作为完整的开发环境。整个项目的工具链、依赖、配置甚至 VS Code 插件都预装在容器中，开发者只需打开项目文件夹，剩下的事情交给 Dev Containers 自动完成。它的工作流程如下：fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;是否。]]></description><category></category></item><item><title><![CDATA[12. 深入理解 Nginx 内存管理：ngx_pool_t与ngx_slab_pool_t源码解析]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162700776</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162700776</guid><author>csdncx</author><pubDate>Wed, 08 Jul 2026 16:38:16 +0800</pubDate><description><![CDATA[Nginx 内存池机制（ngx_pool_t）虽提升性能却增加调试难度，OpenResty 的 no_pool 补丁通过禁用内存池将分配转为标准 malloc/free，使 Valgrind 和 ASan 等工具能精准检测内存泄漏和越界问题。本文解析了 ngx_pool_t 结构，介绍了 no_pool 的实现原理与使用方法，并通过案例展示如何结合内存工具进行高效调试，最后探讨了 Nginx Zone 共享内存的分配机制。]]></description><category></category></item><item><title><![CDATA[局域网直通docker容器网络实践]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162670700</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162670700</guid><author>csdncx</author><pubDate>Tue, 07 Jul 2026 17:35:17 +0800</pubDate><description><![CDATA[本文演示了在Fedora上，通过禁用 Docker 自带的 NAT 规则、手工配置iptablesFORWARD 规则以及客户端静态路由，成功将默认桥接网络下的容器 IP（）暴露给物理网络（），实现“扁平网络”效果。客户端可以直接使用克隆 Gitea 仓库，体现了Linux 内核路由能力替代 Docker 内置 NAT 的强大灵活性。这种架构适用于需要固定容器 IP、且不希望大量端口映射的中小型生产环境。]]></description><category></category></item><item><title><![CDATA[11. Nginx 源码解析：location 预处理流程]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162670181</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162670181</guid><author>csdncx</author><pubDate>Tue, 07 Jul 2026 17:09:11 +0800</pubDate><description><![CDATA[Nginx的location指令优先级与匹配机制解析 本文深入分析了Nginx中location指令的匹配机制，重点解析了精确匹配、前缀匹配和正则匹配的处理流程。文章从核心数据结构入手，详细介绍了ngx_http_location_tree_node和ngx_http_core_loc_conf_t等关键结构体。通过源码分析，揭示了Nginx在配置解析阶段对location的分类处理过程，包括将location划分为精确匹配、前缀匹配和正则匹配三类。特别阐述了前缀查找树(BST)的构建逻辑，以及正则loca]]></description><category></category></item><item><title><![CDATA[10. Nginx 模块开发：Reload 时复用 Zone 数据]]></title><link>https://blog.youkuaiyun.com/csdncx/article/details/162638667</link><guid>https://blog.youkuaiyun.com/csdncx/article/details/162638667</guid><author>csdncx</author><pubDate>Mon, 06 Jul 2026 17:07:37 +0800</pubDate><description><![CDATA[本文介绍了一种在Nginx模块开发中实现共享内存Zone数据持久化的高效方法。通过利用init_zone回调的data参数直接访问旧Zone内存，可在reload时实现内存到内存的数据迁移，避免磁盘I/O。文章详细阐述了核心原理：reload时新旧Zone的生命周期、直接内存复制的优势（零磁盘I/O、原子性和可靠性）。代码实现部分展示了关键数据结构定义和核心逻辑——在ngx_http_zone_clone_init_zone函数中，通过遍历旧Zone红黑树将节点直接复制到新Zone。这种方法特别适用于对性能]]></description><category></category></item></channel></rss>