ショコラ
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アプリをダウンロードさせたい。