リバースプロキシはこれまで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 を有効化するという手順が必要になります。
いつも通りコンテナの起動は以下のコマンドです。
Nginx の設定が初めてなので、ちょっと設定の追い込みはまだ甘いと思います。。。。。。
† Let's Encrypt のレートリミットに注意
追加の注意事項として、Let's Encrypt には一定時間内に取得できる証明書の数にレートリミットがあります*1。これを認識せずに、設定に不備があるままの状態で不用意にコンテナの up / down を繰り返すと証明書が取得できなくなることがあります。
このような事態を避けるため、レート制限が緩いテスト環境(STAGING=1
)で TLS 対応の Nginx が起動するまで設定を調整し、最後にSTAGING=0
にして正規の証明書を取得するようにした方が良いです。
† ファイル構成
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12311
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。