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>
96 lines
3.0 KiB
Markdown
96 lines
3.0 KiB
Markdown
# 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)
|