All checks were successful
Helm Chart Release / release-chart (push) Successful in 12s
ベアメタルKubernetesクラスターやLoadBalancer環境において、 PHP側で訪問者の実IPアドレスを取得できる機能を追加。 Changes: - Add nginx.forwardRealIP configuration in values.yaml - Implement real_ip_header and set_real_ip_from in Nginx config - Pass real IP info to PHP-FPM via fastcgi_param - Add usage example and documentation in README.md - Create test-real-ip.php for verification - Update chart version to 8.5.2-a Features: - Compatible with existing customConfig.snippet - Configurable trusted proxy networks - Supports multi-tier proxy with recursive option - Default disabled for backward compatibility Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Changelog - Version 8.5.2-a
新機能
リアルIP転送機能の追加
ベアメタルKubernetesクラスターやLoadBalancer環境において、PHP側で訪問者の実IPアドレスを取得できる機能を追加しました。
主な変更点
-
values.yaml
nginx.forwardRealIPセクションを追加enabled: リアルIP取得機能の有効/無効header: リアルIPを取得するHTTPヘッダー名(デフォルト: X-Forwarded-For)recursive: 再帰的にリアルIPを検索(多段プロキシ対応)trustedProxies: 信頼するプロキシのネットワーク範囲additionalTrustedProxies: 環境に応じた追加プロキシ設定
-
templates/configmap.yaml
- Nginx の
httpセクションにリアルIP設定を追加 real_ip_header,real_ip_recursive,set_real_ip_fromディレクティブを実装- PHP-FPM へ渡す fastcgi_param にリアルIP情報を追加
- 既存の
customConfig.snippetと競合しない構造
- Nginx の
-
README.md
- リアルIP転送機能の設定パラメータ表を追加
- 例7としてベアメタル環境でのリアルIP取得の使用例を追加
- 検証用PHPコード例を追加
-
examples/test-real-ip.php (新規作成)
- リアルIP転送設定の動作確認用テストスクリプト
- WebUIで各種IP関連変数を確認可能
- 診断機能付き
技術詳細
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での利用
// リアルIPアドレスの取得
$realIP = $_SERVER['REMOTE_ADDR'];
互換性
- 既存の
nginx.customConfig.snippet機能と完全に互換性あり - デフォルトは
enabled: falseのため、既存環境への影響なし - 有効化時のみ、リアルIP取得ロジックが動作
セキュリティ
trustedProxiesには信頼できるプロキシのみを指定してください- 不正なプロキシを信頼すると、IPスプーフィング攻撃のリスクがあります
使用例
# 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レンジ
検証方法
examples/test-real-ip.phpを/var/www/html/に配置- ブラウザでアクセス:
http://your-service/test-real-ip.php REMOTE_ADDRにパブリックIPが表示されることを確認
リリース日: 2026-02-10 担当: プロサーバーエンジニア(Claude)