プロジェクト

全般

プロフィール

バグ #738

未完了

Nginx管理機能実装 - ドメイン設定自動化 (子チケット)

Redmine Admin さんが5日前に追加. 5日前に更新.

ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-26
期日:
進捗率:

0%

予定工数:

説明

Nginx管理機能実装 - ドメイン設定自動化

🎯 概要

VPS-ROOT環境のNginx設定管理とドメイン自動化機能を実装します。

📋 実装対象

1. API エンドポイント

  • GET /api/v1/nginx/domains - ドメイン一覧取得
  • POST /api/v1/nginx/domains - ドメイン設定作成
  • PUT /api/v1/nginx/domains/:domain - ドメイン設定更新
  • DELETE /api/v1/nginx/domains/:domain - ドメイン設定削除
  • POST /api/v1/nginx/test - 設定テスト
  • POST /api/v1/nginx/reload - 設定再読み込み
  • GET /api/v1/nginx/ssl/status - SSL証明書状況

2. 主要関数

  • listDomains(): Promise<Domain[]>
  • createDomainConfig(domain: string, config: DomainConfig): Promise<void>
  • updateDomainConfig(domain: string, config: Partial<DomainConfig>): Promise<void>
  • testNginxConfig(): Promise<ConfigTestResult>
  • reloadNginxConfig(): Promise<ReloadResult>
  • checkCertificateExpiry(): Promise<CertificateStatus[]>

3. UI コンポーネント

  • NginxManagementPage.tsx - Nginx管理画面
  • DomainTable - ドメイン一覧テーブル
  • DomainConfigEditor - ドメイン設定エディター
  • SSLCertificateStatus - SSL証明書状況表示

🔧 技術仕様

設定管理

  • SNI方式マルチドメイン対応
  • ワイルドカードSSL証明書活用
  • 設定ファイル自動生成・検証
  • バックアップ・ロールバック機能

自動化機能

  • ドメイン追加の完全自動化
  • 設定テスト・適用の安全実行
  • SSL証明書期限監視・自動更新
  • アクセスログ解析

✅ 完了条件

  • Nginx API エンドポイント実装完了
  • ドメイン管理関数群実装完了
  • Nginx管理UI実装完了
  • 設定自動化機能動作確認
  • SSL証明書管理機能動作確認

🔗 関連チケット

親チケット: インフラヘルパーサービス基盤構築

📅 期限

Phase 1 - 基盤実装: 2025年6月30日まで

Redmine Admin さんが5日前に更新

📋 Nginx管理機能実装 - 現状・詳細仕様追記

🔍 現在の実装状況

API エンドポイント実装状況 (/api/v1/nginx)

エンドポイント メソッド 実装状況 パラメータ レスポンス
/domains GET 📋 設計完了 - {domains[]}
/domains POST 📋 設計完了 {domain, backend, port} {success}
/domains/:domain GET 📋 設計完了 - {config}
/domains/:domain PUT 📋 設計完了 {config} {success}
/domains/:domain DELETE 📋 設計完了 - {success}
/config/test POST 📋 設計完了 - {valid, errors?}
/config/reload POST 📋 設計完了 - {success}
/config/backup POST 📋 設計完了 - {backupId}
/ssl/certificates GET 📋 設計完了 - {certificates[]}
/ssl/certificates/:domain GET 📋 設計完了 - {certificate}
/ssl/certificates/:domain/renew POST ⭕ 未着手 - {success}
/logs/access GET ⭕ 未着手 ?domain&timeRange {logs[]}
/logs/error GET ⭕ 未着手 ?domain&timeRange {logs[]}
/stats GET ⭕ 未着手 - {stats}

関数実装状況 (0/14 開発中、9/14 設計完了、5/14 未着手)

ファイル: /src/services/nginx/NginxManagementService.ts

📋 ドメイン管理関数 (設計完了)

// ドメイン操作 - 設計完了
async listDomains(): Promise<Domain[]>  // 設計完了
async createDomainConfig(domain: string, config: DomainConfig): Promise<void>  // 設計完了
async updateDomainConfig(domain: string, config: Partial<DomainConfig>): Promise<void>  // 設計完了
async deleteDomainConfig(domain: string): Promise<void>  // 設計完了
async getDomainConfig(domain: string): Promise<DomainConfig>  // 設計完了

// 設定管理 - 設計完了
async testNginxConfig(): Promise<ConfigTestResult>  // 設計完了
async reloadNginxConfig(): Promise<ReloadResult>  // 設計完了
async backupNginxConfig(): Promise<BackupResult>  // 設計完了

// SSL証明書管理 - 設計完了
async checkCertificateExpiry(): Promise<CertificateStatus[]>  // 設計完了

⭕ 未実装機能

// SSL証明書管理 - 未着手
async renewCertificate(domain: string): Promise<RenewalResult>  // 未着手

// ログ・統計 - 未着手
async getAccessLogs(domain?: string, timeRange?: TimeRange): Promise<AccessLog[]>  // 未着手
async getErrorLogs(domain?: string, timeRange?: TimeRange): Promise<ErrorLog[]>  // 未着手
async getNginxStats(): Promise<NginxStats>  // 未着手
async analyzeTrafficPatterns(): Promise<TrafficAnalysis>  // 未着手

🔧 技術仕様詳細

設定管理

  • ✅ SNI方式マルチドメイン対応
  • ✅ ワイルドカードSSL証明書活用
  • 📋 設定ファイル自動生成・検証 (設計完了)
  • 📋 バックアップ・ロールバック機能 (設計完了)

自動化機能

  • 📋 ドメイン追加の完全自動化 (設計完了)
  • 📋 設定テスト・適用の安全実行 (設計完了)
  • ⭕ SSL証明書期限監視・自動更新 (未着手)
  • ⭕ アクセスログ解析 (未着手)

📈 進捗サマリー

  • API エンドポイント: 0/14 (0%) 開発中、10/14 (71%) 設計完了、4/14 (29%) 未着手
  • Nginx管理関数: 0/14 (0%) 開発中、9/14 (64%) 設計完了、5/14 (36%) 未着手
  • UI コンポーネント: 要実装
  • 設定自動化: 設計完了

Nginx基本管理機能は設計完了。SSL自動更新・ログ解析機能が未着手。まずは基本機能の実装から!

他の形式にエクスポート: Atom PDF