*** Apacheでサブドメインを実現してみる [#s1b0df4c]

- [[サブドメイン>http://www.atmarkit.co.jp/flinux/rensai/bind906/bind906a.html]]とは、ドメインに対してそれよりも下の階層を定義委任できる仕組みのことをいいます。
- といっても判りづらいのですが、たとえばよくこんなURLを見たことありませんか?
 http://blog.sea-bird.org
 http://hoge.sea-bird.org

-- 上記の例は、sea-bird.org ドメインの前に、''blog''や''hoge''ってついたもの。~
一般的には''www''じゃないの?って思いません?~
これは、BIND と、Apacheのバーチャルホスト(名前ベース)によって実現されているのです。

*** BINDの設定 [#e898b67c]

- ''http://blog.sea-bird.org'' が外部のネットワーク(インターネット)から参照され場合に、~
'''sea-bird.org'''サーバの場所を返すようにしなければいけません。

- sea-bird.orgの正引きゾーン情報に、COLOR(RED){''blog''}である場所を返す様に定義します。
 www     IN      CNAME   ns.sea-bird.org.
 blog    IN      CNAME   ns.sea-bird.org.               ← この行です
 hoge    IN      CNAME   ns.sea-bird.org.               ← ついでに

-- 設定が終わったら、BINDを再起動しておきます。
 # /etc/rc.d/init.d/named restart

*** Apacheの設定 [#lf78b857]

- DNSの情報は、一定の時間が経過しないと反映されないのでその間にApacheのバーチャルホスト化を設定します。

- COLOR(RED){''/etc/httpd/conf/httpd.conf''} 以下の定義値を修正または追加する。
 # バーチャルホスト化の設定をする場合、ホスト名かサーバアドレスを設定
 ServerName 192.168.0.xx    ← xxには、アドレス
 
 #
 # Use name-based virtual hosting.
 #
 NameVirtualHost 192.168.0.xx:*   ← xxには、アドレス
 
 # httpd.conf の最後に追加する
 <VirtualHost 192.168.0.xxx>                    ← 1.
     ServerAdmin hoge@sea-bird.org
     DocumentRoot "/var/www/html"
     ServerName www.sea-bird.org
     ErrorLog logs/error_log
     CustomLog logs/access_log combined
 </VirtualHost>
 
 <VirtualHost 192.168.0.xxx>                    ← 2.
     ServerAdmin hoge@sea-bird.org
     DocumentRoot "/var/www/html/blog"
     ServerName blog.sea-bird.org
     ErrorLog logs/error_log
     CustomLog logs/access_log combined
 </VirtualHost>
 
 <VirtualHost 192.168.0.xxx>                    ← 3.
     ServerAdmin hoge@sea-bird.org
     DocumentRoot "/var/www/html/hoge"
     ServerName test.sea-bird.org
     ErrorLog logs/error_log
     CustomLog logs/access_log combined
 </VirtualHost>

-- 上記の設定の意味は以下の通りです
 1.www.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html" に
 2.blog.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html/blog" に
 3.hoge.sea-bird.org にアクセスがあった場合、ドキュメントルートを "/var/www/html/hoge" に

: COLOR(RED){はまったこと} |
・ServerName をコメントにしていなかった~
・192.168.0.xxx ここには、サーバの実アドレスを設定していなかった

*** 参考にさせて頂いたサイト様 [#z6fef845]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS