Dockerでnginxリバースプロキシを利用した複数アプリケーションのホスティング

やりたいこと


・nginxリバースプロキシのDocker-containerを建てる。

・サブドメインを設定して、アプリケーションを建てる。

 

nginxでリバースプロキシを建てる


以下のソースを使えば非常に簡単に構築できます。

https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion

ますソースをcloneします。

$git clone https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion.git

次に

$cd docker-compose-letsencrypt-nginx-companion.git
$cp .env.sample .env 

そして.envを各環境に合わせて編集します。(dockerで利用するnetworkなど)

$vim .env 

最後にsetup用のスクリプトを実行します。

$sh ./start.sh

※ここで.envが見つからないというerrorが出る場合、start.shのファイルパスを編集します。(.envを./.envに編集)

docker-containerを立ち上げます。

$docker-compose up -d docker-compose.yml

以上で基本的なリバースプロキシの設定は終わりです。

アプリケーション側の設定


利用したいアプリケーションのdocker-compose.ymlを編集します。

$vim docker-compose.yml
environment:
VIRTUAL_HOST: subdomain_hoge.domain.huga
LETSENCRYPT_HOST: subdomain_hoge.domain.huga
LETSENCRYPT_EMAIL: hoge@hoge.huga

を追記します。(dockerネットワークを.env編集時に変更した場合はnetworksの設定も追加する。)

設定は以上になります。

最後にドメイン名を指定してアプリケーションが動いているか確認して下さい。

 

参考


https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion

http://peeeeron.hatenablog.com/entry/2017/10/31/144658