Carpe Diem

  Top > スポンサー広告> Webサーバ > バーチャルホストの設定 その2(サブドメイン運用)  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バーチャルホストの設定 その2(サブドメイン運用)

2012 - 06/04 [Mon] - 17:25

今回はDNSの設定を行います。DNSの詳細は「内部向けDNSサーバ」を参考にしてください。

今回はサブドメインを使用する場合です。具体的には
www.example.com
web.example.com


のようにホスト名のみ変わり、ドメイン部分は同一の場合です。

DNSサーバの構築も確認の意味で行います。ただし今回はバーチャルホストの確認のためだけですので、サーバ(127.0.0.1)のみでしか使用できない(LANではない)し、逆引きゾーン設定などはしない手抜き版です。


◆DNSの設定

$ sudo apt-get install bind9

①resolv.confの設定
# emacs -nw /etc/resolv.conf
nameserver 127.0.0.1

注意としてresolv.confは無線など繋ぎ直すと更新される場合があるのでうまく行かないときは確認してみてください。

②named.confの設定
# emacs -nw /etc/bind/named.conf.options
options {
        directory "/etc/bind";
        allow-query { localhost;};
        allow-transfer {none;};
        auth-nxdomain no;    # conform to RFC1035
};


# emacs -nw /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
#include "/etc/bind/named.conf.default-zones"; ←コメントアウト
include "/etc/bind/named.conf.internal-zones";

# cp /etc/bind/named.conf.default-zones /etc/bind/named.conf.internal-zones
# emacs -nw /etc/bind/named.conf.internal-zones

以下を先頭に追記します。最後に閉括弧を忘れないように。
view "internal" {
   match-clients {
       localhost;
   };
# 内部向け正引きゾーン設定
zone "example.com" {
     type master;
     file "/etc/bind/db.internal";
};


…… ←コピー元の記述

};
 ←view "internal" の閉括弧


③ゾーン設定
ここで
www.example.com
web.example.com


が使えるようにゾーン設定をします。

# emacs -nw /etc/bind/db.internal

$TTL 1D
@    IN        SOA    ns.example.com. root.example.com. (
             2011043001          ;Serial
        1H              ;Refresh 1 hour
        30M              ;Retry 30 minutes
        1W              ;Expire 1 week
        1D              ;Minimum TTL 1 day
)
        IN    NS    ns.example.com.
        IN    MX 10    mail.example.com.
@        IN    A      127.0.0.1
ns        IN    A     
127.0.0.1
www        IN    A      127.0.0.1
web        IN    CNAME      www

ちなみに
web        IN    A      127.0.0.1

でも構いません。むしろCNAMEは避ける傾向のようで、こっちの方がいいかもしれないです。

完了したらbind9の再起動
$ sudo /etc/init.d/bind9 restart

④確認
$ dig www.example.com$ dig web.exapmle.com
; <<>> DiG 9.7.0-P1 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49754
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.example.com. IN A

;; ANSWER SECTION:
www.example.com. 86400 IN A 127.0.0.1

;; AUTHORITY SECTION:
example.com. 86400 IN NS ns.example.com.

;; ADDITIONAL SECTION:
ns.example.com. 86400 IN A 127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 4 17:30:04 2012
;; MSG SIZE rcvd: 82


となればOKです。
これでDNSの設定は完了です。


◆Apacheのディレクティブ設定
デフォルトの設定に追記します。

$ sudo emacs -nw /etc/apache2/sites-available/default
# 最後尾に追記
<Virtualhost *:80>
    ServerName www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www
    ErrorLog /var/log/apache2/example.com.error.log
    CustomLog /var/log/apache2/example.com.access.log combined
    LogLevel warn
</Virtualhost>

<Virtualhost *:80>
    ServerName web.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /home/web/public_html
    ErrorLog /var/log/apache2/example.com.error.log
    CustomLog /var/log/apache2/example.com.access.log combined
    LogLevel warn
</Virtualhost>


編集したらリロード
$ sudo /etc/init.d/apache2 reload

◆テストページの作成
区別のためwww.example.comはデフォルトの「It works」のページを使い、web.example.comは前回と同じ日付が表示されるページを使用します。

$ cd /home/web/public_html
$ emacs -nw index.php


<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align:center;">
Virtual Host Test Page<br />
<?php
print Date("Y/m/d");

?>
</div>
</body>
</html>



◆確認
http://www.example.com/
にアクセスして「It works」が表示されればOK

http://web.example.com/
にアクセスして日付が表示されればOK。


ソース:
名前ベースのバーチャルホストで複数のホストを管理する
バーチャルホストによる複数サイトの同時運用

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。