
最後の課題として、Dockerで立ち上げたサービスにサブドメインを割り振ってみたいと思います。
リバースプロキシ環境の構築は nginx-proxy というDocker image により手軽に行うことができるのでまずはそれを試しましょう。
1. nginx-proxyを利用してDocker上にリバースプロキシ環境を構築する
1-0. 手順
- Docker Composeを利用するため、nginx-proxy用のディレクトリを作成
- nginx-proxy用のdocker-compose.ymlファイルを作成
- docker compose up -d
mkdir /var/www/nginx_reverse_proxy
cd /var/www/nginx_reverse_proxy
vim docker-compose.yml
version: '2'
networks:
default:
external: true
name: xservervps_ssl_network
services:
nginx-proxy:
container_name: nginx-proxy
image: jwilder/nginx-proxy:latest
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
docker compose up -d
2. XserverのVPSにドメイン・サブドメインを割り当てる
このままでは何も起こらないので、muu-muuドメインで取得したドメインをXserverのVPSに割り当てて、利用できるようにします。(むしろそれを最初にやれという話もあります。時間がかかるので)
2-0. 手順
- muu-muuドメインでネームサーバー設定変更を行います。
- XserverのVPS管理画面から利用するドメインの設定します。
2-1.muu-muuドメインの設定
muu-muuドメインにログイン後、の「ドメイン管理 > ネームサーバー設定変更」から、該当するドメインのネームサーバー設定変更をクリック

GMOぺポパイ外のネームサーバーを使用するで、XServerのVPSサーバーに割り振られたネームサーバーを入力し、設定変更を保存します。

2.XserverのVPS管理画面から利用するドメインの設定
XserverのVPS管理画面からから「DNS設定」を開き、「ドメインの追加」を押します。

利用するドメインを入力し、「確認画面へ進む」「設定を保存する」に進みます。

DNS設定画面に戻るので、先ほど追加したドメインの「選択する」を押して、このドメインをどのサーバー(IPアドレス)に割り当てるのか設定します。




3. Docker ComposeでWordPressを立ち上げてそれをtest.hogehoge.comに割り当てる
3-0. 手順
- 各サービス用のディレクトリを作成し、WordPressを提供するためのdocker-compose.ymlを作成
- docker compose up -dで立ち上げる
mkdir /var/www/test_wordpress
cd /var/www/test_wordpress
vim docker-compose.yml
version: '2'
volumes:
wp_mysql_data:
services:
db:
image: mysql:5.7
volumes:
- wp_mysql_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
depends_on:
- db
restart: always
environment:
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
VIRTUAL_HOST: test.hogehoge.com
networks:
default:
external: true
name: xservervps_ssl_network
docker compose up -d
ここでportを設定する必要はありません。
nginx-proxyと同じネットワークにあるため、nginx-proxyが80ポートで外部からアクセスしてきたものを、container内部で80で通してくれるためです。
これで、test.hogehoge.comにアクセスしてきた場合、test_wordpress/docker-compose.ymlで作成したサービスへと割り振られます。