<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Http-Host-Header on K-Life Hack | システムアーキテクチャ &amp; DevOps</title><link>https://klifehack.com/tags/http-host-header/</link><description>Recent content in Http-Host-Header on K-Life Hack | システムアーキテクチャ &amp; DevOps</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Thu, 27 Aug 2026 10:10:06 +0900</lastBuildDate><atom:link href="https://klifehack.com/tags/http-host-header/index.xml" rel="self" type="application/rss+xml"/><item><title>Nginxリバースプロキシ配下におけるHostヘッダー転送とコンテキスト保持の構成検証</title><link>https://klifehack.com/p/nginx-proxy-pass-host-header-preservation/</link><pubDate>Thu, 27 Aug 2026 10:10:06 +0900</pubDate><guid>https://klifehack.com/p/nginx-proxy-pass-host-header-preservation/</guid><description>&lt;h2 id="1-建築背景と課題提起"&gt;1. 建築背景と課題提起&#10;&lt;/h2&gt;&lt;p&gt;階層型ウェブアプリケーション構造において、NginxはエッジリバースプロキシおよびWebサーバー（WS）として配置され、後続のWebアプリケーションサーバー（WAS：Spring Boot、Tomcatなど）へのトラフィックを中継する役割を担います。&lt;/p&gt;&#10;&lt;p&gt;ドメイン &lt;code&gt;abc.co.kr&lt;/code&gt; に対する外部クライアントからのリクエストは、Nginxを経由して &lt;code&gt;proxy_pass&lt;/code&gt; ディレクティブにより内部ネットワーク（例: &lt;code&gt;localhost:8080&lt;/code&gt;）のWASへと転送されます。&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[ Client Request: http://abc.co.kr ]&#10; │&#10; ▼&#10; [ Nginx Reverse Proxy ]&#10; (Listens on Port 80 / Domain: abc.co.kr)&#10; │ proxy_pass http://localhost:8080&#10; ▼&#10; [ Downstream WAS ]&#10; (e.g., Spring Boot / Tomcat on :8080)&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この構成において、標準設定のまま &lt;code&gt;proxy_pass&lt;/code&gt; を使用した場合、WAS層で &lt;code&gt;request.getRequestURL()&lt;/code&gt; や &lt;code&gt;HttpServletRequest&lt;/code&gt; のコンテキストを参照すると、クライアントがアクセスしたオリジナルのドメイン（&lt;code&gt;abc.co.kr&lt;/code&gt;）ではなく、内部ループバックアドレス（&lt;code&gt;localhost:8080&lt;/code&gt; または &lt;code&gt;127.0.0.1&lt;/code&gt;）として識別される問題が発生します。&lt;/p&gt;&#10;&lt;p&gt;本ドキュメントでは、NginxのHTTPプロキシモジュール（&lt;code&gt;ngx_http_proxy_module&lt;/code&gt;）におけるヘッダー再構築メカニズムを解析し、オリジナルのリクエストコンテキストを完全に保持・伝送するための設定手順と検証手順を整理します。&lt;/p&gt;&#10;&lt;h2 id="2-根本原因の解析-root-cause-analysis"&gt;2. 根本原因の解析 (Root Cause Analysis)&#10;&lt;/h2&gt;&lt;p&gt;Nginxの &lt;code&gt;ngx_http_proxy_module&lt;/code&gt; は、バックエンドサーバーへリクエストを転送する際、デフォルトでHTTPリクエストヘッダーの再構築を行います。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;Hostヘッダーの書き換え&lt;/b&gt;: Nginxは &lt;code&gt;proxy_pass&lt;/code&gt; で指定されたターゲットホスト名（例: &lt;code&gt;localhost:8080&lt;/code&gt;）を、アップストリームへの &lt;code&gt;Host&lt;/code&gt; ヘッダー値として自動的にセットします。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;クライアントメタデータの欠落&lt;/b&gt;: &lt;code&gt;proxy_set_header&lt;/code&gt; を明示的に設定しない限り、接続元クライアントのIPアドレス（&lt;code&gt;X-Real-IP&lt;/code&gt;）、プロキシ経由チェーン（&lt;code&gt;X-Forwarded-For&lt;/code&gt;）、および通信プロトコル（&lt;code&gt;X-Forwarded-Proto&lt;/code&gt;）の情報は破棄または集約されません。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;結果として、WAS側は受信した接続をプロキシ経由ではなく、ローカル環境から直接発生したリクエストとして処理するため、絶対URLの生成やSSLオフロード時のリダイレクト制御で不整合が生じます。&lt;/p&gt;&#10;&lt;h2 id="3-設定の修正手順"&gt;3. 設定の修正手順&#10;&lt;/h2&gt;&lt;p&gt;仮想ホスト設定ファイル（&lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt; または &lt;code&gt;/etc/nginx/conf.d/*.conf&lt;/code&gt;）の &lt;code&gt;location&lt;/code&gt; ブロックを修正します。&lt;/p&gt;&#10;&lt;h3 id="31-従来のデフォルト設定-as-is"&gt;3.1 従来のデフォルト設定 (AS-IS)&#10;&lt;/h3&gt;&lt;p&gt;ヘッダー転送ディレクティブが存在しない場合、WASは &lt;code&gt;Host: localhost:8080&lt;/code&gt; を受信します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;abc.co.kr&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;location&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_pass&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http://localhost:8080&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="32-修正後の設定-to-be"&gt;3.2 修正後の設定 (TO-BE)&#10;&lt;/h3&gt;&lt;p&gt;クライアントのコンテキスト変数をプロキシリクエストヘッダーへ明示的にマッピングします。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;abc.co.kr&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;location&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_pass&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http://localhost:8080&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# オリジナルのHostヘッダーを保持&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;Host&lt;/span&gt; $host;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# クライアントの実際のIPアドレスを転送&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Real-IP&lt;/span&gt; $remote_addr;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# プロキシチェーンを経由したIPアドレスリストを保持&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Forwarded-For&lt;/span&gt; $proxy_add_x_forwarded_for;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 元のリクエストプロトコル (http または https) を転送&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;proxy_set_header&lt;/span&gt; &lt;span style="color:#e6db74"&gt;X-Forwarded-Proto&lt;/span&gt; $scheme;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4-各ディレクティブの機能明細"&gt;4. 各ディレクティブの機能明細&#10;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ディレクティブ&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;使用変数&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;技術的役割および機能概要&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;proxy_set_header Host&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;$host&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;クライアントが要求したオリジナルのホスト名を保持します。&lt;code&gt;$host&lt;/code&gt; にはリクエストラインのホスト名、または &lt;code&gt;Host&lt;/code&gt; ヘッダーフィールドのホスト名が含まれます。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;proxy_set_header X-Real-IP&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;$remote_addr&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Nginxに直接接続したクライアントの物理IPアドレスを渡します。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;proxy_set_header X-Forwarded-For&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;$proxy_add_x_forwarded_for&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;既存の &lt;code&gt;X-Forwarded-For&lt;/code&gt; ヘッダー値の末尾にクライアントの &lt;code&gt;$remote_addr&lt;/code&gt; を追加し、多段プロキシ環境におけるトレーサビリティを確保します。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;proxy_set_header X-Forwarded-Proto&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;$scheme&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;クライアントとNginx間の転送プロトコル（&lt;code&gt;http&lt;/code&gt; または &lt;code&gt;https&lt;/code&gt;）を渡します。WAS側でのリダイレクトループ防止やSecure Cookie発行時に不可欠です。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="5-apache-http-serverにおける同等設定"&gt;5. Apache HTTP Serverにおける同等設定&#10;&lt;/h2&gt;&lt;p&gt;Nginxに限らず、Apache HTTP Server（&lt;code&gt;httpd&lt;/code&gt;）を &lt;code&gt;mod_proxy&lt;/code&gt; 経由でリバースプロキシとして運用する場合も同様の動作が発生します。&lt;/p&gt;&#10;&lt;p&gt;Apacheではデフォルトで &lt;code&gt;Host&lt;/code&gt; ヘッダーがバックエンドのアドレスに書き換えられるため、以下の通り &lt;code&gt;ProxyPreserveHost On&lt;/code&gt; ディレクティブを仮想ホスト内に明記する必要があります。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-apache" data-lang="apache"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;virtualhost&lt;/span&gt; &lt;span style="color:#e6db74"&gt;*:80=&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ServerName abc.co.kr&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ProxyPreserveHost &lt;span style="color:#66d9ef"&gt;On&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ProxyPass / http://localhost:8080/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ProxyPassReverse / http://localhost:8080/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/virtualhost&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="6-トラブルシューティングおよび動作検証"&gt;6. トラブルシューティングおよび動作検証&#10;&lt;/h2&gt;&lt;p&gt;設定適用時の代表的なトラブルシューティング手順と、検証ログの例を示します。&lt;/p&gt;&#10;&lt;h3 id="-摩擦点-friction-points"&gt;⚠️ 摩擦点 (Friction Points)&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;無限リダイレクトループ&lt;/b&gt;: SSLオフロード（NginxでHTTPSを受け、WASへHTTPで転送）を行う際、&lt;code&gt;X-Forwarded-Proto&lt;/code&gt; が欠落していると、WASがHTTPSへの再リダイレクト（301/302）を応答し続け、リダイレクトループが発生します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;マルチプロキシ時のIP偽装&lt;/b&gt;: 上流にロードバランサーが存在する場合、&lt;code&gt;$remote_addr&lt;/code&gt; のみを参照するとロードバランサーのプライベートIPが記録されるため、&lt;code&gt;set_real_ip_from&lt;/code&gt; および &lt;code&gt;real_ip_header&lt;/code&gt; の適切な組み合わせ検討が必要です。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="-動作検証ログ"&gt;🛠️ 動作検証ログ&#10;&lt;/h3&gt;&lt;p&gt;Nginx設定構文チェックおよびリクエストヘッダー透過の検証コマンド実行ログです。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# nginx -t&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nginx: the configuration file /etc/nginx/nginx.conf syntax is ok&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nginx: configuration file /etc/nginx/nginx.conf test is successful&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# systemctl reload nginx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# curl -Iv -H &amp;#34;Host: abc.co.kr&amp;#34; http://127.0.0.1/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Trying 127.0.0.1:80...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; GET / HTTP/1.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; Host: abc.co.kr&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; User-Agent: curl/7.81.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; Accept: */*&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; HTTP/1.1 200 OK&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Server: nginx/1.24.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Date: Thu, 27 Aug 2026 09:15:00 GMT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Content-Type: text/html;charset=UTF-8&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Connection: keep-alive&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WAS側ログにおけるヘッダー認識確認:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2026-08-27 09:15:00.102 [http-nio-8080-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - GET &amp;#34;/&amp;#34;, parameters={}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[Header Trace]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host: abc.co.kr&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Real-IP: 203.0.113.195&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Forwarded-For: 203.0.113.195&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Forwarded-Proto: http&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Request URL Resolved: http://abc.co.kr/&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="7-lessons-learned"&gt;7. Lessons Learned&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;proxy_pass&lt;/code&gt; 使用時は、単にパスを転送するだけでなく、アップストリームに必要なコンテキストヘッダー（&lt;code&gt;Host&lt;/code&gt;, &lt;code&gt;X-Real-IP&lt;/code&gt;, &lt;code&gt;X-Forwarded-For&lt;/code&gt;, &lt;code&gt;X-Forwarded-Proto&lt;/code&gt;）を明示的にセットすることが運用上の標準ルールとなります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;バックエンドフレームワーク（Spring Boot等）側で &lt;code&gt;ForwardedHeaderFilter&lt;/code&gt; や &lt;code&gt;server.forward-headers-strategy&lt;/code&gt; を適切に有効化し、プロキシヘッダーを信頼する設定と対で運用する必要があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;</description></item></channel></rss>