複数ドメインの管理

いま自宅サーバとして管理している 5-55.jpとは別に min10.comを同じサーバで管理(バーチャルドメイン)しようと思います。なるべくコスト(主として時間と手間)をかけないでやる方法を追求してみました。

ドメインの取得

いつもの 更新料も安い!ドメイン取得はFC2ドメイン で min10.comを取りました。3n10.jpとか、min10.jpも候補にあったのですが、.com=798円、.jp=3675円という3千円の価格差に負けました。
ま、それに加えて、.jpだと独自のDNSサーバを用意しないといけないというところに引っかかって、.comでいいかとなったんですが、調べてみると、すでに動いている 5-55.jpと同じ構成(プライマリ ns1.5-55.jp、セカンダリ ns.maihama-net.com)を指定しておけば、たぶんなんの問題もなかったと思われます。

DNSレコードの設定

.comはFC2ドメインの代行DNSが使えるので、こちらのDNSレコードを設定します。
HTTPアクセスは 5-55.jpと同じで自宅サーバグローバルIPアドレス(219.117.201.174)へ飛ばします。
メールは、MXEという簡易指定があるので、これを指定します。(MXEは、Aレコードと MXレコードが一緒になったようなものという説明ですが、詳細についてはちっともわかっていません。ただ、こうしておけばいいらしいというだけです)

DNS設定の確認

nslookupで min10.comがどこに飛ぶか確認します。

PS C:\> nslookup min10.com
Server:  ns1.5-55.jp.1.168.192.in-addr.arpa
Address:  192.168.1.250

Non-authoritative answer:
Name:    min10.com
Address:  219.117.201.174

自前のDNSサーバ(ns1.5-55.jp)はまだなにもいじっていないので、min10.comのアドレス解決ができず、上位のDNSサーバへ聞きにいって、ちゃんと 219.117.201.174を返してきました。

バーチャルホスト(Apache)の設定

とりあえず、Apacheのルートまでは来たので、これを正しい場所へ振り分けます。

$ e /etc/apache2/sites-available/my_site
 
  RailsRuby /opt/ruby-enterprise-1.8.6-20080624/bin/ruby
  RailsMaxPoolSize 50
  RailsPoolIdleTime 300

  ServerName min10.com
  DocumentRoot /home/www/3n10/public

  ServerAdmin mam@5-55.jp
  ServerSignature On
  LogLevel warn
  ErrorLog /home/www/3n10/log/error.log
  CustomLog /home/www/3n10/log/access.log combined

  ScriptAlias /cgi-bin/ /home/www/3n10/cgi-bin/
  Alias /doc/ "/usr/share/doc/"
 
$ s /etc/init.d/apache2 restart

<VirtualHost *:80>ブロックを「/etc/apache2/sites-available/my_site」ファイルに追加します。修正が終わったら Apacheのリスタートを忘れずに。

DNSサーバの設定

以上で外部から、http://min10.comでアクセスすると、自宅サーバの /home/www/3n10/public にアクセスされるはずですが、自宅内環境から 219.117.201.174にアクセスするとルーターへのアクセス(192.168.1.1)とみなされて、ルーター設定画面が立ち上がってしまいます。
これを防ぐために、自前のDNSサーバ(ns1.5-55.jp)の設定を変えて、min10.comのアドレス解決をしてやります。

$ e /etc/bind/named.conf
  zone "min10.com" IN {  // min10.comの正引きゾーン情報(内部)
    type master;
    file "/etc/bind/db.min10";
  };

min10.comの正引きゾーン情報を追加します。実際の設定は、/etc/bind/db.min10に書きます。

$ e /etc/bind/db.min10
 $TTL  86400
 @     IN SOA   min10.com.  root.min10.com.(
                              2008092991 ; Serial  = today
                              28800      ; Refresh = 8 hours
                              14400      ; Retry   = 4 hours
                              3600000    ; Expire  = 1000 hours
                              86400 )    ; Minimum = 1 day
       IN NS    ns1.5-55.jp.
       IN MX 10 mail.5-55.jp.

 @     IN A     192.168.1.251 ; min10.com
 *     IN A     192.168.1.251 ; *.min10.com
$ s /etc/init.d/bind9 restart

DNS(NSレコード)とメール(MXレコード)は自前で持たないので、5-55.jpあてにしてあります。(この設定で有効なのかどうかはよくわかりませんが)
設定が終わったら、bindをリスタートさせておきます。

DNS設定の確認

nslookupで min10.comがどこに飛ぶかもう一度確認します。

PS C:\> nslookup min10.com
Server:  ns1.5-55.jp.1.168.192.in-addr.arpa
Address:  192.168.1.250

Name:    min10.com
Address:  192.168.1.251

今度は自前のDNSサーバ(ns1.5-55.jp)で min10.comのアドレス解決をしてローカルIPを返してきました。

バーチャルホスト(Apache)の設定確認

さて、これでやっと準備が整ったので、http://min10.com にアクセスしてみます。大丈夫なようです。メール設定については、また明日。