# Changelog - Version 8.5.2-a ## 新機能 ### リアルIP転送機能の追加 ベアメタルKubernetesクラスターやLoadBalancer環境において、PHP側で訪問者の実IPアドレスを取得できる機能を追加しました。 #### 主な変更点 1. **values.yaml** - `nginx.forwardRealIP` セクションを追加 - `enabled`: リアルIP取得機能の有効/無効 - `header`: リアルIPを取得するHTTPヘッダー名(デフォルト: X-Forwarded-For) - `recursive`: 再帰的にリアルIPを検索(多段プロキシ対応) - `trustedProxies`: 信頼するプロキシのネットワーク範囲 - `additionalTrustedProxies`: 環境に応じた追加プロキシ設定 2. **templates/configmap.yaml** - Nginx の `http` セクションにリアルIP設定を追加 - `real_ip_header`, `real_ip_recursive`, `set_real_ip_from` ディレクティブを実装 - PHP-FPM へ渡す fastcgi_param にリアルIP情報を追加 - 既存の `customConfig.snippet` と競合しない構造 3. **README.md** - リアルIP転送機能の設定パラメータ表を追加 - 例7としてベアメタル環境でのリアルIP取得の使用例を追加 - 検証用PHPコード例を追加 4. **examples/test-real-ip.php** (新規作成) - リアルIP転送設定の動作確認用テストスクリプト - WebUIで各種IP関連変数を確認可能 - 診断機能付き ## 技術詳細 ### Nginx設定 ```nginx # HTTP-levelで設定 real_ip_header X-Forwarded-For; real_ip_recursive on; set_real_ip_from 10.0.0.0/8; set_real_ip_from 172.16.0.0/12; set_real_ip_from 192.168.0.0/16; # PHP-FPMへ渡すパラメータ fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param HTTP_X_REAL_IP $remote_addr; fastcgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; ``` ### PHPでの利用 ```php // リアルIPアドレスの取得 $realIP = $_SERVER['REMOTE_ADDR']; ``` ## 互換性 - 既存の `nginx.customConfig.snippet` 機能と完全に互換性あり - デフォルトは `enabled: false` のため、既存環境への影響なし - 有効化時のみ、リアルIP取得ロジックが動作 ## セキュリティ - `trustedProxies` には信頼できるプロキシのみを指定してください - 不正なプロキシを信頼すると、IPスプーフィング攻撃のリスクがあります ## 使用例 ```yaml # values.yaml nginx: forwardRealIP: enabled: true header: "X-Forwarded-For" recursive: true trustedProxies: - "10.0.0.0/8" - "172.16.0.0/12" - "192.168.0.0/16" additionalTrustedProxies: - "203.0.113.0/24" # 外部LoadBalancerのIPレンジ ``` ## 検証方法 1. `examples/test-real-ip.php` を `/var/www/html/` に配置 2. ブラウザでアクセス: `http://your-service/test-real-ip.php` 3. `REMOTE_ADDR` にパブリックIPが表示されることを確認 --- **リリース日**: 2026-02-10 **担当**: プロサーバーエンジニア(Claude)