fix: 実IPアドレス取得とメール送信の不具合を修正
Helm Chart Release / release-chart (push) Successful in 6s

- service.externalTrafficPolicy: Local を追加し、kube-proxyのSNATによる
  実IPアドレス消失を解消(ベアメタル/MetalLB構成向け)
- wp-config.php内の危険な二重REMOTE_ADDR上書き処理を削除
  (Nginx real_ipモジュールの信頼境界を迂回できるIP詐称の余地があった)
- smtp.* 設定を追加し、msmtp経由の外部SMTPリレー送信に対応
  (helmchart/phpfpm と同一の実装パターンを踏襲)
- README.md / CLAUDE.md を更新
This commit is contained in:
2026-08-08 00:24:05 +09:00
parent 2d698e6148
commit 40ca516249
8 changed files with 299 additions and 12 deletions
+47 -2
View File
@@ -44,9 +44,47 @@ wordpress:
# ads.txt content
# google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
# SMTP設定(wp_mail()/PHPのmail()関数によるメール送信用)
# コンテナ内にはメール送信を行うMTA(sendmail相当)が存在しないため、
# デフォルトのままではWordPressからのメール(パスワードリセット、通知等)は送信できません。
# 外部SMTPリレー(Gmail、SendGrid、自前のメールサーバー等)経由で送信する場合に有効化してください。
smtp:
enabled: false
# SMTPサーバー設定
host: "smtp.example.com"
# プロトコルとポート設定
# - auto: 自動判定(推奨)
# - starttls: STARTTLS(ポート587
# - tls: SSL/TLS(ポート465
protocol: "auto"
port: 587
# 認証設定
auth:
enabled: true
username: "smtp-user@example.com"
# password はSecretで管理する
# helm install ... --set smtp.auth.password='your-password' 等で指定
password: ""
# 送信元アドレス(固定値。wp-config.phpやプラグイン側の指定より優先されます)
from: "noreply@example.com"
# TLS/SSL設定
tls:
# 証明書検証を有効化(本番環境では true を推奨)
verify: true
# 自己署名証明書を許可する場合(テスト環境のみ)
allowSelfSigned: false
nginx:
# ベアメタルクラスター等でリアルIPを取得する設定
# ローカルIP(ベアメタル等)から訪問者のリアルIPを取得する場合に有効にします
# Ingress ControllerやCDN(Cloudflare等)、外部LB等、X-Forwarded-Forヘッダーを
# 付与するリバースプロキシを前段に置く場合にのみ有効にしてください。
# 本チャートのデフォルト構成(Service直下にPodがぶら下がるベアメタル/MetalLB構成)では
# X-Forwarded-For を付与する層が存在しないため、この設定を有効にしても効果はありません。
# その場合は下記の service.externalTrafficPolicy: Local を使用してください。
forwardRealIP:
enabled: false
# 信頼できるプロキシのIPレンジを追加してください
@@ -66,6 +104,13 @@ service:
# type: ClusterIP
port: 80
targetPort: 80
# ベアメタルクラスター(MetalLB等)でクライアントの実IPを取得するための設定。
# kube-proxyはデフォルト(Cluster)だと送信元IPをノードIPにSNATしてしまうため、
# Local にすることでSNATを回避し、Nginxの$remote_addrに実IPがそのまま渡ります。
# 注意: Local にすると、Podが存在しないノードへのアクセスは失敗するため、
# DaemonSetまたは全ノードにPodが分散する構成を推奨します。
# LoadBalancer / NodePort でのみ有効(ClusterIPでは無視されます)。
externalTrafficPolicy: Local
# Ingress設定
ingress: