
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文演示了在Fedora上,通过禁用 Docker 自带的 NAT 规则、手工配置iptablesFORWARD 规则以及客户端静态路由,成功将默认桥接网络下的容器 IP()暴露给物理网络(),实现“扁平网络”效果。客户端可以直接使用克隆 Gitea 仓库,体现了Linux 内核路由能力替代 Docker 内置 NAT 的强大灵活性。这种架构适用于需要固定容器 IP、且不希望大量端口映射的中小型生
本文介绍了一种优化微服务Docker镜像体积的方法。通过将公共依赖提取到基础镜像,每个微服务只需打包业务代码层,大幅减少镜像体积。具体步骤包括:使用Maven插件将Jar拆分为公共依赖和业务代码,构建基础镜像存放公共依赖,微服务镜像基于基础镜像仅添加业务层。相比传统Fat Jar方式,该方法可显著节省磁盘空间和部署时间。文章还提供了Maven配置示例、Dockerfile编写指南,并对比了优化前后
Submodule 允许你将一个外部的 Git 仓库(如 Nginx 主线源码)嵌入到你自己的项目仓库中。嵌入的仓库在父仓库中只是一个链接(一个特殊的 Git 对象),记录了它当前指向的特定提交(commit)。在# 创建自定义模块目录 mkdir -p my_modules/ngx_http_hello_module # 创建模块源码文件 cat > my_modules/ngx_http_he
type字段是的核心,它通过位运算组合了多个宏。作用域宏参数个数宏和取值类型宏。是 Nginx 模块开发的基石。理解其nametypesetconfoffset和post字段,以及type字段中作用域、参数个数和取值类型的宏定义,是编写高质量 Nginx 模块的关键。通过合理利用 Nginx 提供的内置slot函数(如等),我们可以高效地解析常见的配置模式,从而专注于模块的核心逻辑。希望本文的讲解
在现代微服务架构中,gRPC 凭借其高性能、跨语言和强大的接口定义能力,成为服务间通信的热门选择。但在实际 Java 项目中,往往希望对外暴露 HTTP 接口,而内部服务调用则使用 gRPC。本文将以一个真实的多模块项目为例,讲解如何用 Spring Boot + gRPC 搭建「HTTP 入口 + gRPC 内部调用」的开发模板。我们将构建一个包含三个模块的 Maven 工程:所有代码使用统一包
摘要 本文深入解析了Nginx HTTP模块开发中的核心结构体ngx_http_request_t,重点介绍了其关键字段和实际应用。文章首先对结构体进行了分类概述,包括请求基本信息、请求头、请求体、连接与上下文等几大类型。随后详细讲解了常用字段如args(查询参数)、method_name(请求方法)、headers_in/out(请求/响应头)等的功能及典型用法,并提供了代码示例。特别对HTTP
本文深入解析了Nginx subrequest子请求机制的源码实现与模块开发。文章首先剖析了核心数据结构ngx_http_request_t和关键函数ngx_http_subrequest的调用链,揭示了父子请求关系、内存池管理等底层机制。随后提供了两个实用开发示例:单子请求处理模块和并行子请求聚合模块(BFF场景),涵盖配置编译、响应捕获、引用计数等完整实现细节。通过源码分析与实例结合,帮助开发
本文深入解析了Nginx upstream模块的核心数据结构与默认加权轮询算法,并指导如何实现自定义负载均衡模块。首先剖析了三个关键结构体:ngx_http_upstream_rr_peer_t(单节点信息)、ngx_http_upstream_rr_peers_t(节点集合)和ngx_http_upstream_rr_peer_data_t(请求选择状态)。然后详细解读了Nginx的平滑加权轮询
本文概述了Nginx模块化开发的三种核心范式:核心模块、事件模块和HTTP模块。核心模块负责全局配置,需实现ngx_core_module_t结构体;事件模块封装I/O复用模型,需提供ngx_event_actions_t回调函数;HTTP模块分为Handler、Filter和Upstream三类,其中Handler模块通过实现请求处理函数来生成响应内容。每种模块类型都有特定的注册方式和编译配置要
本文介绍了一种在Nginx模块开发中实现共享内存Zone数据持久化的高效方法。通过利用init_zone回调的data参数直接访问旧Zone内存,可在reload时实现内存到内存的数据迁移,避免磁盘I/O。文章详细阐述了核心原理:reload时新旧Zone的生命周期、直接内存复制的优势(零磁盘I/O、原子性和可靠性)。代码实现部分展示了关键数据结构定义和核心逻辑——在ngx_http_zone_c







