mcpField
N
nginx-c-modules

nginx-c-modules

github.com/pproenca開発218352 回インストール11 週間前に更新
リポジトリ

nginx-c-modules について

nginx-c-modulesは、nginx Cモジュール開発者向けの開発ガイドです。メモリ、リクエストのライフサイクル、設定、イベント処理など8分野のルールを優先度順に整理し、一般的な実装ミスの防止に役立ちます。

主な機能

  1. 018カテゴリのモジュール開発ルール
  2. 02影響度順のルール構成
  3. 03プールと共有メモリの管理指針
  4. 04リクエストのライフサイクルと設定の実践方法
  5. 05フィルター、アップストリーム、イベントループの指針

活用シーン

  1. 01nginx 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 C モジュール開発のベストプラクティス

nginx の公式開発ドキュメントとコミュニティの知見に基づく、nginx C モジュールの包括的な開発ガイドです。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)
  • conf-unset-init - UNSET 定数を使って設定フィールドを初期化する
  • conf-merge-all-fields - merge_loc_conf ですべての設定フィールドをマージする
  • conf-context-flags - ディレクティブに正しいコンテキストフラグを使用する
  • conf-null-command - コマンド配列の末尾を ngx_null_command にする
  • conf-custom-handler - 複雑なディレクティブ解析にはカスタムハンドラーを使用する
  • conf-module-ctx-null - 使用しないモジュールコンテキストのコールバックを NULL に設定する
  • conf-build-config - モジュールのコンパイルに適した config ビルドスクリプトを記述する
4. ハンドラー開発(HIGH)
5. フィルターチェーン(MEDIUM-HIGH)
6. アップストリームとプロキシ(MEDIUM)
7. イベントループと並行処理(MEDIUM)
8. データ構造と文字列(LOW-MEDIUM)

使用方法

詳しい説明とコード例については、各リファレンスファイルをお読みください。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルール用のテンプレート
metadata.jsonバージョンとリファレンス情報

コメント