BLOGTIMES
2021/02/22

Docker で HTTP/3 対応の nginx のリバースプロキシを立ててみた

  docker  nginx  http2  http3  dockercompose 
このエントリーをはてなブックマークに追加

HTTP/3 - Docker で HTTP/3 対応の nginx のリバースプロキシを立ててみた

リバースプロキシはこれまで Apache HTTPd で構築していましたが、今回の Docker 化を機に Nginx に移行することにしました。

TLS 化のための証明書は Let's Encrypt を使い、折角なので HTTP/3 にも対応させてみることにします。具体的には以下の2つのイメージを組み合わせています。

ファイルを配置したら、コンテナを起動する前にファイル中にあるfoo.example.com は、全てサーバの FQDN に合わせて書き換えてください。リバースプロキシについては先日立てた Gitbuket に接続する例を書いてみましたが、この部分についても必要なサービス宛に書き換える必要があります。

また、初回起動時には TLS の証明書がないので TLS の設定が入った Nginx の設定ファイル(nginx.conf)だと Nginx が起動しません。このため、初回起動時だけ TLS の設定が入っていない設定ファイル(nginx.conf.wossl)で一度コンテナを起動し、TLS 証明書を取得してから TLS を有効化するという手順が必要になります。

いつも通りコンテナの起動は以下のコマンドです。

docker-compose up -d

Nginx の設定が初めてなので、ちょっと設定の追い込みはまだ甘いと思います。。。。。。

Let's Encrypt のレートリミットに注意

追加の注意事項として、Let's Encrypt には一定時間内に取得できる証明書の数にレートリミットがあります*1。これを認識せずに、設定に不備があるままの状態で不用意にコンテナの up / down を繰り返すと証明書が取得できなくなることがあります。

このような事態を避けるため、レート制限が緩いテスト環境(STAGING=1)で TLS 対応の Nginx が起動するまで設定を調整し、最後に STAGING=0 にして正規の証明書を取得するようにした方が良いです。

ファイル構成

docker-nginx-letsencrypt/  ├ docker-compose.yml  ├ nginx.conf  └ nginx.conf.wossl


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12311
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン