mcpField
N
nginx-c-modules

nginx-c-modules

github.com/pproenca开发218352 次安装11 周前更新
代码仓库

关于 nginx-c-modules

nginx-c-modules 是面向 nginx C 模块开发者的实践指南,按优先级组织 8 类规则,涵盖内存、请求生命周期、配置及事件处理,以帮助避免常见错误。

主要功能

  1. 01覆盖 8 类模块开发规则
  2. 02按影响程度排序
  3. 03指导内存池与共享内存管理
  4. 04说明请求生命周期与配置处理
  5. 05涵盖过滤器、上游和事件循环

适用场景

  1. 01编写 nginx HTTP 处理器或过滤器
  2. 02管理请求内存与共享内存区域
  3. 03实现配置指令及合并逻辑
  4. 04处理异步请求与事件循环

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill nginx-c-modules

安装后在 Claude Code 中输入/nginx-c-modules确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

metadata.json
assets/templates/
_template.md
references/
_sections.md
conf-build-config.md
conf-context-flags.md
conf-custom-handler.md
conf-merge-all-fields.md
conf-module-ctx-null.md
conf-null-command.md
conf-unset-init.md
ds-cpymem-pattern.md
ds-hash-readonly.md
ds-list-iteration.md
ds-ngx-str-not-null-terminated.md
ds-ngx-str-set-literals.md
event-handle-read-write.md
event-no-blocking.md
event-posted-events.md
event-thread-pool.md
event-timer-management.md
filter-buffer-chain-iteration.md
filter-buffering-flag.md
filter-call-next.md
filter-check-subrequest.md
filter-registration-order.md
handler-add-variable.md
handler-content-handler.md
handler-empty-response.md
handler-error-page.md
handler-last-buf.md

详细介绍

nginx.org nginx C 模块开发最佳实践

这是一份全面的 nginx C 模块开发指南,基于 nginx 官方开发文档和社区经验整理而成。指南涵盖 8 个类别中的 49 条规则,并按影响程度排序,旨在指导正确实现模块,避免常见崩溃、内存泄漏和未定义行为。

适用场景

以下情况可参考这些指南:

  • 编写新的 nginx C 模块(处理程序、过滤器、上游、负载均衡器)
  • 实现配置指令和合并逻辑
  • 使用 nginx 内存池和共享内存区域管理内存
  • 处理 HTTP 请求生命周期(读取请求体、子请求、完成请求)
  • 使用 nginx 事件循环、定时器和线程池

规则类别与优先级

优先级类别影响前缀
1内存管理CRITICALmem-
2请求生命周期CRITICALreq-
3配置系统HIGHconf-
4处理程序开发HIGHhandler-
5过滤器链MEDIUM-HIGHfilter-
6上游与代理MEDIUMupstream-
7事件循环与并发MEDIUMevent-
8数据结构与字符串LOW-MEDIUMds-

快速参考

1. 内存管理(CRITICAL)
2. 请求生命周期(CRITICAL)
3. 配置系统(HIGH)
4. 处理程序开发(高)
5. 过滤器链(中高)
6. 上游与代理(中)
7. 事件循环与并发(中)
8. 数据结构与字符串(低中)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

参考文件

文件描述
references/_sections.md类别定义和排序
assets/templates/_template.md新规则模板
metadata.json版本和参考信息

评论

支持 Markdown