nginx-proxy + acme-companion でHTTPSを自動化する
- POSTS
- 201 Words
はじめに 複数の Web サービスを同じサーバーで動かすとき、ポートや証明書の管理が面倒になりがちです。
そこで便利なのが nginx-proxy と acme-companion の組み合わせです。
nginx-proxy : コンテナの環境変数 (VIRTUAL_HOST) を読み取り、自動的に Nginx のリバースプロキシ設定を生成 acme-companion : Let’s Encrypt の証明書を自動発行・自動更新 これにより、サービス側にほとんど設定を書かずに 自動で HTTPS 化された環境を構築できます。
前提条件 サーバー上に Docker / Docker Compose がインストール済みであること 公開するドメインがサーバーの グローバル IP に正しく向いていること すべてのサービスコンテナは 同じ Docker ネットワーク (shared-net など) に所属する必要があります docker-compose.yml(プロキシ側) 以下は nginx-proxy + acme-companion の基本構成です。
この 2 コンテナが 80/443 ポートを占有して、全サービスのフロントに立ちます。
services: nginx-proxy: image: nginxproxy/nginx-proxy:alpine container_name: nginx-proxy restart: always ports: - "80:80" - "443:443" volumes: - /etc/nginx/certs:/etc/nginx/certs - /etc/nginx/vhost.