LoginSignup
3
2

More than 3 years have passed since last update.

さくらVPSでマルチドメイン(バーチャルホスト、Virtual Host)設定

Last updated at Posted at 2019-11-19

はじめての!さくらVPSでマルチドメイン

やりたいこと

  • サーバ代節約のためにマルチドメインの設定
  • ひとつのIPアドレスでマルチドメインにする【名前ベース】の設定方法
  • うち、1ドメインはJavaをTomcatで利用している
    • ドメイン1.com(java使ってるサイト)
    • ドメイン2.com(普通のhtmlだけのサイト)

環境

  • CentOS7
  • Apache2.4.6

さくらVPSにJava実行環境を構築する
データベースを使ったJavaプロジェクトを前回までにVPSに作ったサーバへ配置

で、作った環境を引き続き使っていきます。

ドメインの取得、設定

ドメインはどこか適当なサイトで事前に取得しておきます。趣味や勉強で作ったサイト程度なら無料の独自ドメインサービスを使うのもありだと思います。設定が反映されるまで数時間かかります。毎回だいたい3時間くらいです。長いと数日かかることもあるらしいです。

  • 無料のドメインサービスfreenom

ドメインとったサイトでの作業

ドメインとったサイトでさくらのネームサーバの設定をしておく。
下図はfreenomの画面。

  • ネームサーバー1 ns1.dns.ne.jp
  • ネームサーバー2 ns2.dns.ne.jp

image.png

さくら側の作業

さくらのコンパネでネームサーバの設定をしておく。
新しいネームサーバの登録>追加したい独自ドメインを記述>IPアドレスを記述
https://secure.sakura.ad.jp/menu/domain/zoneadd.php
image.png

Virtual Hostの設定

安全を考慮すると設定ファイルを分けたほうがいいのですが、ファイル増やしたのすぐ忘れる性格なのでここではhttpd.confの下部に記述する方法でやっています。

httpd.confのバックアップを保存

設定をミスして何かあったときに(だいたい急に表示されなくなる。とても焦る)戻せるようにバックアップをとっておきます。
date "+%Y%m%d_%H%M%S"でバックアップの日付をファイル名に追加しています。

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.`date "+%Y%m%d_%H%M%S"`

httpd.confを開く

# vi /etc/httpd/conf/httpd.conf

コマンドメモ

検索 /
一番下に行く G

httpd.conf
#ServerName www.example.com:80   // 編集前
NameVirtualHost *:80 // 編集後

下記の記述。どこでもいいけどわかりやすいように私はNameVirtualHost *:80の下に記述しました。

httpd.conf
Listen 80

各ドメインの設定

フォルダは先に作成しておきます。

  • DocumentRoot ドメインのルートフォルダ
  • ServerName ドメイン名

最下部へ追記
domain1.comのdomainにはJavaを使ったアプリが配備してあるのでTomcat側へアクセスを飛ばす設定ProxyPass / ajp://【VPSのIPアドレス】:8009/をしています。両方ともJava使わないサイトの場合は記述は必要ないです。

httpd.conf

<VirtualHost *:80>
  ServerName domain1.com
  DirectoryIndex index.html index.php
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/html/domain1com/
  <Directory "/var/www/html/domain1com/">
    AllowOverride All
    Require all granted
  </Directory>
  ProxyPass / ajp://【VPSのIPアドレス】:8009/
</VirtualHost>

<VirtualHost *:80>
  ServerName domain2.com
  DirectoryIndex index.html index.php
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/html/domain2com/
  <Directory "/var/www/html/domain2com/">
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

保存して再起動で完了です。

【宿題】まだよく分かっていないこと

今後2つ以上のドメインでJava使いたいたい場合はどうするんだろうと調べていたらTomcat側でバーチャルホストの設定が必要らしいと設定終わってから知った。ProxyPass / ajp://【VPSのIPアドレス】:8009/追記じゃなくてはじめっからTomcat側だけの設定でよかったのかな。

Tomcat9 バーチャルホストを設定する

ドメイン増えたらためしてみます。

参考

バーチャルホストの例
https://httpd.apache.org/docs/trunk/ja/vhosts/examples.html
名前ベースのバーチャルホスト
https://httpd.apache.org/docs/2.4/ja/vhosts/name-based.html
Apache httpd と Tomcat を連携させる方法
https://weblabo.oscasierra.net/tomcat-mod-proxy-ajp/
Tomcat9 バーチャルホストを設定する
https://www.javalife.jp/2018/04/11/tomcat9-%e3%83%90%e3%83%bc%e3%83%81%e3%83%a3%e3%83%ab%e3%83%9b%e3%82%b9%e3%83%88%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/

3
2
0

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
3
2