designetwork

ネットワークを軸としたIT技術メモ

Nginx R-Proxy proxy_pass_request_headers offでupstream向けにHeaderを引き継がない

このブログはアクセス解析のために、Nginxではてなブログ向けのリバースプロキシを設置している。Nginxに加え、FastlyのCDNを経由させたところ、 404 Blog is not found となってしまった。 詳細不明だが、はてなブログ側での振り分けの際にHostヘッダ以外の各種ヘッダを参照しており、何らかの問題があったように見える。

構成概要

Client -> Fastly -> Nginx -> Hatenablog

ヘッダを引き継がないようにする

proxy_pass_request_headers (デフォルト on )を off にすることで、クライアントからNginxへのヘッダを引き継がないようにできる。

http {
  server {
    ...
    location / {
      proxy_pass_request_headers off;
      proxy_set_header Host designetwork.daichi703n.com;
      proxy_pass https://hatenablog.com;
    }
  }
}

nginx.org

はてなブログ編集リアルタイムプレビュー /realtime_preview が 403 Invalid signature になってしまう...

ヘッダを消しすぎたようで、編集モードのリアルタイムプレビューの認証が通らなくなってしまった...。雑にヘッダを削除するのは良くない。

まとめ - Nginx R-Proxy proxy_pass_request_headers offでupstream向けにHeaderを引き継がない

proxy_pass_request_headers off; を設定することで、Nginx R-Proxyからupstreamへのリクエストに対して、元ヘッダをを引き継がずにシンプルなリクエストを送信することができる。