ITエンジニアとして 知る 学ぶ
 
Java
.NET
PHP
プログラミング一般
DataBase
システム/サーバ構築
システム/サーバ運用
技術系一般知識
 
 
IT技術情報>システム/サーバ構築>0からのApache第08回:Apache応用設定2
【連載 】0からのApache

第8回:Apache応用設定2

 
 
 

【 ページ 】 | 1 | 2 | 3 |


<<前のページへ

2.IPアドレスベースのバーチャルホスト(1.3/2共通)

 IPアドレスに比較的余裕がある場合には、IPアドレスベースのバーチャルホストを使用します。ハードウェアに複数のIPアドレスを付与し、アクセスのあるIPアドレスにごとに異なるドキュメントルートを設定することが可能です。これにより、IPアドレスの個数だけ異なるサイトを1つのサーバで運用することが可能です。



 IPアドレスの枯渇が心配されている現状では、IPアドレスベースのバーチャルホストを使うよりも名前ベースのバーチャルホストを使う方がよりメリットがあります。しかし、HTTP1.1に対応していないブラウザでは名前ベースのバーチャルホストはうまく機能しません。IPアドレスベースのバーチャルホストのほうがより確実に動作します。
  なお複数のIPアドレスを付与するには、ネットワークカードを複数枚装着するかもしくは、1つのネットワークカードに複数のIPアドレスを付与する必要があります。
  ここでは2つのサイトをIPアドレスベースのバーチャルホストとして動作するように設定する方法を説明していきます。この2つのサイトのホスト名とIPアドレスの対応は以下のようになっているものとします。

www.itboost.co.jp → 192.168.0.2

tech.itboost.co.jp → 192.168.0.3


IPアドレスベースのバーチャルホストの設定を行うためには以下の手順が必要です。
  1. DNSサーバにAレコードを登録
  2. IPアドレスを複数付与
  3. httpd.confにIPアドレスベースのバーチャルホストの設定を記述
それぞれ以下で説明していきます。


▼Java や Linux を体系的に学びましょう!▼
Stack*のラクスが、
新学習方式のカリキュラムを開発しました!
14700円から(*1)、Java や Linux を体系的に学べます!!
(*1 テキスト代のみの税込料金です)




2_1.DNSサーバにAレコードを登録

 IPアドレスベースのバーチャルホストを使用するには、名前解決後のIPアドレスがそれぞれ異なる必要があります。2つのホスト名、www.itboost.co.jp ・ tech.itboost.co.jpに関して正しく名前解決できるように設定します。なおここではDNSサーバにBINDを使用しているものとして話を進めていきます。
 itboost.co.jpゾーンのゾーンデータベースにwwwとtechに関するAレコードを追加します。同じゾーン内のホストでバーチャルホストを設定していますが、もちろん異なるゾーンに属するホストでも可能です。

www.itboost.co.jp. IN A 192.168.0.2
tech.itboost.co.jp. IN A 192.168.0.3

  DNSサーバに設定を反映したら、正しく名前射解決ができるかどうかnslookupなどを使って確認しておいてください。

2_2.IPアドレスを複数付与

 IPアドレスを複数付与するにはネットワークカードを複数装着するという方法もありますが、ここでは1つのネットワークカードに複数のIPアドレスを設定する方法を説明していきます。Linux・Solarisで設定方法が異なりますので、それぞれの場合を説明していきます。

○ Linux
 Linuxのネットワーク関連の設定ファイルは/etc/sysconfig/network-scriptsにあります。/etc/sysconfig/network-scripts/ifcfg-eth0にすでにIPアドレスが設定されている場合は、/etc/sysconfig/network-scripts/ifcfg-eth0:1という名前のファイルを設定することでIPアドレスを追加設定することができます。
  /etc/sysconfig/network-scripts/ifcfg-eth0に192.168.0.2が設定されている場合は、/etc/sysconfig/network-scripts/ifcfg-eth0:1に192.168.0.3の設定を記述します。具体的には以下の内容でファイルを作成すれば結構です。

DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.3
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

保存後、以下のコマンドを実行してネットワークへの設定を適用します。

# /etc/rc.d/init.d/network restart
インターフェース eth0を停止中:                             [  OK  ]
ループバックインターフェース を終了中                        [  OK  ]
ネットワークパラメータを設定中:                              [  OK  ]
ループバックインターフェイスを呼び込み中                     [  OK  ]
インターフェース eth0を活性化中:                           [  OK  ]

 これで1つのネットワークカードに2つのIPアドレスが設定されているはずですので、ifconfigで確認してみてください。以下のようにeth0とeth0:1が表示されれば正しく設定できています。

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:90:99:2D:83:80
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3962 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2088 errors:0 dropped:0 overruns:0 carrier:0
          collisions:3 txqueuelen:100
          RX bytes:338410 (330.4 Kb)  TX bytes:245964 (240.1 Kb)
          Interrupt:9 Base address:0x4c00

eth0:1    Link encap:Ethernet  HWaddr 00:90:99:2D:83:80
          inet addr:192.168.0.3  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:9 Base address:0x4c00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

○ Solaris
 Solarisのインターフェイスの設定は/etc/hostname.interface:XXXで行います。(interfaceはethernetデバイス名が、XXXにはインタフェイス番号が入ります。)
 /etc/hostname.XXX0にすでにホスト名が設定されている場合は、/etc/hostname.interface0:1という名前のファイルを設定することで新しくホスト名を追加設定することができます。例えば、/etc/hostname.hme0:1というファイルを作成します。(hme0:0はhme0と同じ意味ですので使用しないで下さい。)

 /etc/hostname.hme0にwwwが設定されている場合は、/etc/hostname0:1にtechの設定を記述します。具体的には以下の内容で/etc/hostname.hme0:1ファイルを作成すれば結構です。

tech

さらに、ホスト名をIPアドレスに変換するため、/etc/inet/hostsファイルを設定します。

192.168.0.3 tech

 設定するアドレスが別ネットワークの場合にはネットマスクの設定を/etc/netmasksに書き込みます。具体的には以下のような書式になりますが、今回の設定はhme0とhme0:1はそれぞれ192.168.0.2及び192.168.0.3に設定することを想定しています。つまり、両方のインタフェイスが同じネットワークに属す為、hme0用のネットマスクが既に設定されていれば、特に再設定は必要ありません。

192.168.0.0      255.255.255.0

. 設定後、システムをリブートすることで、設定が反映されます。

# init 5

 また、一時的にインタフェイスにアドレスを割り当てたいような場合、以下のようにifconfigコマンドを実行すれば、リブートせずに、インターフェイスを設定できます。

# ifconfig hme0:1 plumb 192.168.0.3 netmask 255.255.255.0 broadcast + up

 これで1つのネットワークカードに2つのIPアドレスが設定されているはずですので、ifconfigで確認してみてください。以下のようにhme0とhme0:1が表示されれば正しく設定できています。

# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
        ether 8:0:20:b6:17:f9
hme0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.0.3 netmask ffffff00 broadcast 192.168.0.255

2_3.httpd.confにIPアドレスベースのバーチャルホストの設定を記述

 IPアドレスベースのバーチャルホストを設定するには、httpd.confに各IPアドレスに対応するVirtualHostディレクティブを記述すれば結構です。具体的には以下のようになります。

<VirtualHost 192.168.0.2>
  ServerName www.itboost.co.jp
  ServerAdmin webmaster@itboost.co.jp
  DocumentRoot /usr/local/apache/www
  ErrorLog /usr/local/apache/log/www_error_log
  TransferLog /usr/local/apache/log/www_access_log
</VirtualHost>

<VirtualHost 192.168.0.3>
  ServerName tech.itboost.co.jp
  ServerAdmin webmaster@itboost.co.jp
  DocumentRoot /usr/local/apache/tech
  ErrorLog /usr/local/apache/log/tech_error_log
  TransferLog /usr/local/apache/log/tech_access_log
</VirtualHost>

 192.168.0.2 にアクセスがあった場合には、<VirtualHost 192.168.0.2>〜</VirtualHost>の間の設定に従いアクセス処理を行います。また、192.168.0.3 にアクセスがあった場合には、<VirtualHost 192.168.0.3>〜</VirtualHost>の間の設定に従いアクセス処理を行います。それぞれにServerName・ServerAdmin・DocumentRoot・ErrorLog・TransferLogディレクティブが記述されており、個別のサイトとして運用することが可能です。

ServerName 各バーチャルホストのホスト名を指定します。
ServerAdmin サイト管理者のメールアドレスを指定します。
DocumentRoot 各バーチャルホスト用のドキュメントルートを指定します。
ErrorLog エラーログを記録するファイルを指定します。
TrnsferLog アクセスログを記録するファイルを指定します。

実際にはhttp://www.itboost.co.jpでアクセスした際には、192.168.0.2 のドキュメントルートのコンテンツを参照し、http://tech.itboost.co.jpでアクセスした際には、192.168.0.3 のドキュメントルートのコンテンツを参照します。


>>次のページへ


【 目次 】
1.はじめに
2.IPアドレスベースのバーチャルホスト(1.3/2共通)
2_1.DNSサーバにAレコードを登録
2_2.IPアドレスを複数付与
2_3.httpd.confにIPアドレスベースのバーチャルホストの設定を記述
3.ホスト名ベースのバーチャルホスト(1.3/2共通)
3_1.DNSサーバにAレコードを登録
3_2.httpd.confにIPアドレスベースのバーチャルホストの設定を記述

【 関連記事 】
0からのApache
第1回:Apacheを動かしてみよう
第2回:Apache設定の仕組み
第3回:Apache基本設定パート1
第4回:Apache基本設定パート2
第5回:Apache基本設定パート3
第6回:Apache基本設定パート4
第7回:Apache応用設定パート1
第8回:Apache応用設定パート2
第9回:Apache2.0応用設定3
第10回:Apache拡張設定(WebDAV編 その1)
第11回:Apache拡張設定(WebDAV編 その2)

サイト内全文検索
スタックアスタリスクのサイトを検索します。検索には、Googleを利用しています。そのため、最新の情報で検索されない可能性があります。


簡単レンタルメールフォーム
300メガ1000円〜 XBitのレンタルサーバー
500メガ1995円〜 電話サポート/PostgreSQL/専用SSLなどにも対応!お客様のニーズを網羅したレンタルサーバ
ホームページ制作のアシストウェブ
STACK* 執筆の講師陣から習得する!! ITエンジニアスクール アイティブースト
統合メールサポートシステム 〜MailDealer(メールディーラー)〜
システム開発,IT教育 〜株式会社アイティーブースト(ITBoost)〜
簡単 営業支援/顧客管理ツール Easy Sales
  利用規約 お問い合わせ・ご意見 スタックアスタリスクについて 運営会社について 
  レンタルサーバー ホスティング 専用サーバー メールフォーム ショッピングカート メール共有 ITエンジニア派遣 Linux講座 Java講座 メール配信 レンタルサーバー Webデータベース 検索サービス
CopyrightcRAKUS Co.,Ltd. All Rights Reserved.  メール管理・共有 顧客管理(CRM)もできるメール対応サポートシステム JAVA LINUX CISCO 技術者派遣 育成事業 株式会社ラクス