Google Cloud(HTTPS)ロードバランサーの背後でnginxを使用してリバースプロキシを行っているので、バックエンドがクライアント(ブラウザー)IPを抽出できるようにX-Forwarded-For
ヘッダーを追加します。
今朝、ログで10.x.x.x
IPに気づきました。これはどのようにして可能ですか?
ログは複数のIPアドレスを含むヘッダーをどのように解釈しますか?正しいIPアドレスではなく最初のIPアドレスを取得する場合、これは、forwardプロキシがreverseプロキシ。
ヘッダーとその内容は、GCP HTTP(S)負荷分散の設定 の記事に記載されています。
X-Forwarded-For: <unverified IP(s)>, <immediate client IP>, <global forwarding rule external IP>, <proxies running in GCP>
(リクエストのみ)リクエストが通過した仲介者によって追加されたIPアドレスのカンマ区切りリスト。 GCP内で
X-Forwarded-For
ヘッダーにデータを追加するプロキシを実行している場合、ソフトウェアはそれらのプロキシの存在と数を考慮する必要があります。<immediate client IP>
および<global forwarding rule external IP>
エントリのみがロードバランサーによって提供されます。リスト内の他のすべてのエントリは検証なしで渡されます。
それに応じてログを調整するだけです。
GoogleクラウドロードバランサーとgoogleクラウドDNSとnginxをリバースプロキシとして使用しています。以下のnginx設定を使用します。
set_real_ip_from 10.48.0.0/14;
set_real_ip_from 10.128.0.0/9;
set_real_ip_from 10.114.44.0/22;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
cloudfare DNSは機能しますが、Google Cloud DNSとAWS Route 53は機能しません。1か月以来この問題に直面しています。また、real_ip_header CF-Connecting-IPを使用しました。それでもクライアントIPを取得しない場合、nginxログにgcpインスタンスのローカルIPが常に表示されます。DNSに問題がある場合は、この問題の解決方法を教えてください。