読者です 読者をやめる 読者になる 読者になる

ITは遊び

毎日パソコンのことばかり考えてる

Webサーバ(apache2)のドメインをスムーズに移行できたかな?

server

このたび、j74th.comを取得したので、今までhttp://74street.ddo.jp/でやっていたものを、http://www.j74th.com/に移すことにした。

現在この2つのドメインは両方とも同じ自宅サーバを指している、というか、IPを2つも用意できない。だから、apache2の方で振り分けなければならない。いろいろやってみたのだが、以下のようになった。

  • j74th.comのDNSを、www.j74th.comを問われたら74street.ddo.jpだよ!(CNAMEで)ってやる
  • apache2でネームヴァーチャルホストで、www.j74th.comと74street.ddo.jpの2つを設定する
  • 74street.ddo.jpをwww.j74th.comにリダイレクトさせる

DNSはwww.j74th.comから74street.ddo.jpをさして、Apacheでは74street.ddo.jpからwww.j74th.comを指すっていう変な設定になった。

1.j74th.comのDNSを、www.j74th.comを問われたら74street.ddo.jpだよ!(CNAMEで)ってやる

書いてあるそのまま。CNAMEは、実はこのドメインはこのドメインのことだったんです!って返す属性のこと。これで、ブラウザにはwww.j74th.comと表示されたまま、74street.ddo.jpに移動する(URLは書き換わらない)。

何故74street.ddo.jpを指す必要があるかというと、www.j74th.comは静的DNSサービスなので動的IPな自宅サーバでは使えないので、ダイナミックDNSサービスとして使わせてもらっている74street.ddo.jpを経由して、自宅サーバのIPに名前解決してもらうためである。

2.apache2でネームヴァーチャルホストで、www.j74th.comと74street.ddo.jpの2つを設定する

参考:バーチャルホストによる複数サイトの同時運用(1/2)

apache2では設定を以下のように書いて、常にヴァーチャルホストで動いている(っぽい)。

/etc/apache2/sites-avaival/default


webの設定

これに対し、ネームでヴァーチャルホストを分けてね、って設定してやることができる。

/etc/apache2/sites-avaival/default

NameVirtualHost *:80


ServerName www.j74th.com
www.j74th.comの設定



ServerName 74street.ddo.jp
74street.ddo.jpの設定

これだけで、分けることが出来る。ブラウザがヘッダにドメインを乗っけてくれている事が条件となるが、まぁ、AU携帯でも分けてくれたので、大丈夫だろう。

ちなみに、www.j74th.comでも74street.ddo.jpでもないものでアクセスした場合(IP直うちとか)、最初に記述した方にアクセスされた。

74street.ddo.jpをwww.j74th.comにリダイレクトさせる

参考:

74street.ddo.jpをリダイレクトさせるには、その設定を書き加えてやるだけ。


ServerName 74street.ddo.jp
Redirect / www.j74th.com

これで74street.ddo.jpのどこにアクセスしてもwww.j74th.comにアクセスされるようになった。

いろいろ試したのだけど、

74street.ddo.jp上でエラーページをPHPで操って転送ページ作るとか、いろいろ考えたのだけど、直接リダイレクトさせるのが一番簡単そうだと思った。