Nginx リバースプロキシでクライアントに返す HTTPヘッダーを追加・変更するには?

ショコラ
ショコラ

Nginx リバースプロキシでクライアントに返す HTTPヘッダーを追加・変更するには?

add_header または more_set_headers でクライアントに返す HTTPヘッダーを設定することができる。
①add_header
 既に存在している HTTPヘッダーは設定することができない。
②more_set_headers
 既に存在している HTTPヘッダーも設定することができる。

今回は既に存在している「content-type」を変更したかったので more_set_headers を使ってキメマス。

もっさん先輩
もっさん先輩

location ~ ^/(\d+)/(\D+.hta)
{
  more_set_headers 'content-type: application/octet-stream';
  proxy_pass https://bitbucket.org/answorz.com/$1/raw/master/$2;
}

拡張子 .hta のファイルにアクセスすると「content-type: text/plain」の HTTPヘッダーが返されファイルの中身が表示されてしまったので、「content-type: application/octet-stream」で上書きしてダウンロードするようにします。

シチュエーション

bitbucket.org で htaアプリを公開している。ブラウザで拡張子 .hta のファイルにアクセスした場合、ダウンロードされずファイルの中身がそのまま表示されてしまった。リバースプロクシを通すことによって htaアプリをダウンロードさせたい。

Scroll to Top