操作
バグ #738
未完了Nginx管理機能実装 - ドメイン設定自動化 (子チケット)
ステータス:
新規
優先度:
高め
担当者:
-
開始日:
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自動更新・ログ解析機能が未着手。まずは基本機能の実装から!
操作