nginxプロキシでアップストリームのヘッダを消す

nginx
この記事は約3分で読めます。

nginxプロキシでアップストリームサーバが返す一部のレスポンスヘッダを消したい。

アップストリーム側で出力しているヘッダがあり、nginxプロキシ側でも同様にadd_headerでヘッダを出力している場合にヘッダが重複してしまう。例えばmattermostのdocker版では、一部のページでX-Frame-Optionsが重複して出力されてしまう?ようだが、どのページかは言及されていない。ただパッと見た限りではloginページくらいか?ブラウザはエラーにはならないが、できれば取り除きたい。

Duplicate X-Frame-Options header · Issue #468 · mattermost/mattermost-docker
I noticed in an installation of Mattermost via the Docker container that it sends the "X-Frame-Options: SAMEORIGIN" header twice. This is probably not intended.

ソースを調査するかぎりでは、ソース内に直書きされているので管理画面で削除するといったことはできなさそうだった。

mattermost-server/handlers.go at 3099128bbd4faa1cdcf716182e2cc43c294badfd · mattermost/mattermost-server
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. - mattermost-server/handlers.go at 3099128bbd4f...

mattermostのdocker版は、nginxコンテナでsecurity.confというファイルが読み込まれるようになっている。その中で以下の3つのヘッダがレスポンスヘッダに追加される。X-Frame-Options SAMEORIGIN;が追加されていることが分かる。

proxy_hide_header

このディレクティブは、ngx_http_proxy_moduleというモジュールで使えるものだが、デフォルトで組み込まれているモジュールのため使用できる。以下のように指定する。

以下をconfに設定して反映してみよう。

nginxコンテナのconfをコピーしてきて、

以下のように編集する。オリジナルのconfとの差は以下のとおり。

編集したconfを反映する。

ページにアクセスしてみると重複は解消されている。

他のアプローチとして、headers-more-nginx-moduleというモジュールがあるが、これは別途組み込みが必要なようだ。

Error Page

参考リンク

コメント

タイトルとURLをコピーしました