|
|
 |
| 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アドレスベースのバーチャルホストの設定を行うためには以下の手順が必要です。
- DNSサーバにAレコードを登録
- IPアドレスを複数付与
- httpd.confにIPアドレスベースのバーチャルホストの設定を記述
それぞれ以下で説明していきます。
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ファイルを作成すれば結構です。
さらに、ホスト名をIPアドレスに変換するため、/etc/inet/hostsファイルを設定します。
設定するアドレスが別ネットワークの場合にはネットマスクの設定を/etc/netmasksに書き込みます。具体的には以下のような書式になりますが、今回の設定はhme0とhme0:1はそれぞれ192.168.0.2及び192.168.0.3に設定することを想定しています。つまり、両方のインタフェイスが同じネットワークに属す為、hme0用のネットマスクが既に設定されていれば、特に再設定は必要ありません。
|
192.168.0.0 255.255.255.0 |
. 設定後、システムをリブートすることで、設定が反映されます。
また、一時的にインタフェイスにアドレスを割り当てたいような場合、以下のように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アドレスベースのバーチャルホストの設定を記述
|
 |
【 関連記事 】
|
|
 |
 |
|
サイト内全文検索 |
| スタックアスタリスクのサイトを検索します。検索には、Googleを利用しています。そのため、最新の情報で検索されない可能性があります。 |
|