nginx」カテゴリーアーカイブ

nginx http/3を動かす

NginxでHTTP/3を動かしてみます。HTTP/3はQUICというプロトコルに基づいているようです。詳しくは理解していないので追々学んでいきたいと思います。まずは、ローカルで動かしてどのようなデータやり取りが行われているのかwiresharkで覗くところから。

Dockerコンテナでビルドします。gistでレシピが公開されているのでそれに倣います。

 

ビルドすると以下のエラーとなってしまいました。

どうも上記のオプションは--with-http_v3_moduleに統合された?ようなので削除します。

参考: https://hg.nginx.org/nginx-quic/rev/33226ac61076

最終的に以下のようにしました。

nginx.conf

ビルドしてコンテナ起動します。

curlでアクセスしてみます。

RFC9000 https://www.rfc-editor.org/rfc/rfc9000.html

参考

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

この記事は【2020年12月6日】と作成から2年以上経っているため、記事の内容が古い可能性があります。最新の情報を合わせてご確認されることを推奨いたします。

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

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

https://github.com/mattermost/mattermost-docker/issues/468

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

https://github.com/mattermost/mattermost-server/blob/3099128bbd4faa1cdcf716182e2cc43c294badfd/web/handlers.go#L171

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というモジュールがあるが、これは別途組み込みが必要なようだ。

https://www.nginx.com/resources/wiki/modules/headers_more/

参考リンク