バグ #738
未完了
Nginx管理機能実装 - ドメイン設定自動化 (子チケット)
Redmine Admin さんが5日前に追加.
5日前に更新.
説明
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証明書期限監視・自動更新
- アクセスログ解析
✅ 完了条件¶
🔗 関連チケット¶
親チケット: インフラヘルパーサービス基盤構築
📅 期限¶
Phase 1 - 基盤実装: 2025年6月30日まで
📋 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