#はじめに
Dockerのnginxでvirtualhost試したいと思います
そもそもDockerのオプション使えって話かもしれませんが。。
#ホスト側環境
Dockerはインストール済みということで。
foderaでやってます
cat /etc/redhat-release
->Fedora release 24 (Twenty Four)
#nginx立ち上げる
docker run --name test-nginx -d -p 8080:80 nginx
まずは確認
http://localhost:8080/
welcomeみたいなのが出てたらおっけです
#virtualhostの設定
##やりたいこと
1つのipアドレスに対して2つのFQDNを使えるようにする
そのために、virtualhostを利用する。
ちなみにipはローカルを使う。(そもそもLAN内での接続が前提です)
##要素
一つ目のホスト->www.test1.co.jp
二つ目のホスト->www.test2.co.jp
ipアドレス->127.0.0.1(まぁ、ローカルホストです)
#コンテナのファイルをいじりますので。
docker exec -it test-nginx bash
#vim install ファイルをコピーでもいいんですが。。
apt-get update
apt-get install vim -y
#ファイルを作成します
mkdir /var/www/test1
mkdir /var/www/test2
echo "<html>test1</html>" > /var/www/test1/index.html
echo "<html>test2</html>" > /var/www/test2/index.html
#該当ファイルを編集します
vi /etc/nginx/conf.d/default.conf
##virtualhostのためのコンフィグ設定
先程の二つを追加で記述します。
saerver_nameにFQDN、
rootにドキュメントルートを書く感じですね。
下記みたいな感じです。
#defaultはそのままで下記を追加
server {
listen 80;
server_name www.test1.co.jp;
location / {
root /var/www/test1;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.test2.co.jp;
location / {
root /var/www/test2;
index index.html index.htm;
}
}
##設定の確認
/etc/init.d/nginx configtest
成功できたらおっけ。exitする
##再起動
docker restart test-nginx
##hostsの設定
本当は、DNSサーバーでってなるのですが、
ローカルで試したいので、ホストマシン(今回はfodera)の
/etc/hostsに例の二つを加え、名前解決させます。
127.0.0.1 www.test1.co.jp
127.0.0.1 www.test2.co.jp
#最後に確認
http://www.test1.co.jp:8080
http://www.test2.co.jp:8080
それぞれtest1とtest2の文字列が出力されれば成功です。
#おわりに
めちゃくちゃ眠い
#参考
[library/nginx]
(https://hub.docker.com/_/nginx/)