手帳

  • 2023-05-02
  • IT系

最後の課題として、Dockerで立ち上げたサービスにサブドメインを割り振ってみたいと思います。

リバースプロキシ環境の構築は nginx-proxy というDocker image により手軽に行うことができるのでまずはそれを試しましょう。

1. nginx-proxyを利用してDocker上にリバースプロキシ環境を構築する

1-0. 手順

  1. Docker Composeを利用するため、nginx-proxy用のディレクトリを作成
  2. nginx-proxy用のdocker-compose.ymlファイルを作成
  3. 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. 手順

  1. muu-muuドメインでネームサーバー設定変更を行います。
  2. 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. 手順

  1. 各サービス用のディレクトリを作成し、WordPressを提供するためのdocker-compose.ymlを作成
  2. 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で作成したサービスへと割り振られます。