二、实现基于IP的虚拟主机

场景:

目前,公司共有四个部门,每个部门的域名分别如下表

表9-2-1 虚拟主机规划表

部门

域名

网页文档目录

IP

部门1

dep1.penguin.com

/var/webroot/dep1

192.168.152.101

部门2

dep2.penguin.com

/var/webroot/dep2

192.168.152.102

部门3

dep3.penguin.com

/var/webroot/dep3

192.168.152.103

部门4

dep4.penguin.com

/var/webroot/dep4

192.168.152.104

每个部门网站的主文档的文件名都是index.htm:

部门1的index.htm内容

This is deparment one

部门2的index.htm内容

This is department two

部门3的index.htm内容

This is department three

部门4的index.htm内容

This is department four

服务器本身的IP为192.168.152.100

1、配置服务器绑定多个IP

(1)在/etc/sysconfig/network-script/目录里,对ifcfg-eth0复制几个副本,文件名分别为

ifcfg-eth0:0 ifcfg-eth0:1 ifcfig-eth0:2 ifcfg-eth0:3,分别修改里面的内容

Ifcfg-eth0:0

DEVICE=eth0:0

BOOTPROTO=none

#HWADDR=00:0C:29:8F:13:DB

ONBOOT=yes

IPADDR=192.168.152.101

NETMASK=255.255.255.0

GATEWAY=

ifcfg-eth0:1

DEVICE=eth0:1

BOOTPROTO=none

#HWADDR=00:0C:29:8F:13:DB

ONBOOT=yes

IPADDR=192.168.152.102

NETMASK=255.255.255.0

GATEWAY=

Ifcfg-eth0:2

DEVICE=eth0:2

BOOTPROTO=none

#HWADDR=00:0C:29:8F:13:DB

ONBOOT=yes

IPADDR=192.168.152.103

NETMASK=255.255.255.0

GATEWAY=

Ifcfg-eth0:3

DEVICE=eth0:3

BOOTPROTO=none

#HWADDR=00:0C:29:8F:13:DB

ONBOOT=yes

IPADDR=192.168.152.104

NETMASK=255.255.255.0

GATEWAY=

(2)重启动APACHE服务

ifconfig检查多个IP是否已经绑定在服务器上。如下显示

eth0 Link encap:Ethernet HWaddr 00:0C:29:8F:13:DB

inet addr:192.168.152.100 Bcast:192.168.152.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe8f:13db/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:684 errors:0 dropped:0 overruns:0 frame:0

TX packets:174 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:64041 (62.5 KiB) TX bytes:35351 (34.5 KiB)

Interrupt:75 Base address:0x20a4

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:8F:13:DB

inet addr:192.168.152.101 Bcast:192.168.152.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:75 Base address:0x20a4

eth0:1 Link encap:Ethernet HWaddr 00:0C:29:8F:13:DB

inet addr:192.168.152.102 Bcast:192.168.152.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:75 Base address:0x20a4

eth0:2 Link encap:Ethernet HWaddr 00:0C:29:8F:13:DB

inet addr:192.168.152.103 Bcast:192.168.152.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:75 Base address:0x20a4

eth0:3 Link encap:Ethernet HWaddr 00:0C:29:8F:13:DB

inet addr:192.168.152.104 Bcast:192.168.152.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:75 Base address:0x20a4

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:1237 errors:0 dropped:0 overruns:0 frame:0

TX packets:1237 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:126408 (123.4 KiB) TX bytes:126408 (123.4 KiB)

2、修改APACHE服务器配置文件/etc/httpd/conf/httpd.conf

(1)将主服务器正确配置

Listen 80

DocumentRoot "/var/webroot"

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory "/var/webroot">

Options Indexes FollowSymLinks MultiViews

Order allow,deny

Allow from all

</Directory>

(2)配置虚拟主机

#NameVirtualHost *:80

#NameVirtualHost此命令需要注释掉

<VirtualHost 192.168.152.101>

ServerAdmin webmaster@dep1.penguin.com

DocumentRoot /var/webroot/dep1

ServerName dep1.penguin.com

ErrorLog logs/dep1web-error_log

CustomLog logs/dep1web-access_log common

</VirtualHost>

<VirtualHost 192.168.152.102>

ServerAdmin webmaster@dep2.penguin.com

DocumentRoot /var/webroot/dep2

ServerName dep2.penguin.com

ErrorLog logs/dep2web-error_log

CustomLog logs/dep2web-access_log common

</VirtualHost>

<VirtualHost 192.168.152.103>

ServerAdmin webmaster@dep3.penguin.com

DocumentRoot /var/webroot/dep3

ServerName dep3.penguin.com

ErrorLog logs/dep3web-error_log

CustomLog logs/dep3web-access_log common

</VirtualHost>

<VirtualHost 192.168.152.104>

ServerAdmin webmaster@dep4.penguin.com

DocumentRoot /var/webroot/dep4

ServerName dep4.penguin.com

ErrorLog logs/dep4web-error_log

CustomLog logs/dep4web-access_log common

</VirtualHost>

(3)访问验证

1)http://192.168.152.100

Apache的应用六---实现虚拟主机之二_Apache

访问的是主服务器内容

2)http://192.168.152.101

Apache的应用六---实现虚拟主机之二_Apache_02

访问的是部门1的站点

3)http://192.168.152.102

Apache的应用六---实现虚拟主机之二_职场_03

访问的是部门2的站点

4)http://192.168.152.103

Apache的应用六---实现虚拟主机之二_虚拟主机_04

访问的是部门3的站点

5)http://192.168.152.104

Apache的应用六---实现虚拟主机之二_虚拟主机_05

访问的是部门4 的站点

注意:实验中,我们是采用IP地址去访问网站,在实际应用,如果将每个IP对应到不同的域名上,那就可以实现按域名访问。