LoginSignup
102
111

More than 5 years have passed since last update.

nginx-proxyによるマルチドメイン環境

Posted at

nginx-proxyによるマルチドメイン環境

nginx-proxyというdocker imageを使うことで,複数のコンテナによるWebサーバーを構築してみます.これによって,サーバコンテナが複数ある場合に,ドメイン名によってアクセスを振り分けることが出来ます.
nginx-proxy_image.png
このnginx-proxyのすばらしいところは,サーバコンテナの稼働状態に応じて自動で設定が変更されるところです.例えば,サーバコンテナ2が停止した場合,その時点で自動的にnginx-proxyの設定が変更されます.逆にサーバコンテナを追加したくなった場合には,引数を付けて起動するだけで追加出来ます.非常に便利ですね.

構築手順

CentOS7/docker環境が導入されていることを前提とします.

nginx-proxyコンテナの起動

以下のコマンドでimageのダウンロードと起動ができます.

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy

もし,SELinuxが有効な環境であれば,–security-opt=label:type:docker_tをつけることによって,SELinux環境でも動作させることができます.

サーバコンテナの起動

サーバコンテナの環境変数VIRTUAL_HOSTを設定すればnginx-proxy経由で外部に公開することができます.カンマ区切りで複数の指定も可能です.このオプションだけでnginx-proxyが自動的に設定されるので楽です.

-e VIRTUAL_HOST=hoge.com,www.hoge.com

コマンド例は以下のようになります.各サーバコンテナや環境に合わせて設定してください.なお,-p 80:80のようなオプションは不要です.

docker run -e VIRTUAL_HOST=hoge.com -it -d server_image

まとめ

nginxによるproxy環境を構築することができました.簡単に環境構築ができる素晴らしい時代ですね.

102
111
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
102
111