您的位置:首页 > 运维架构 > Apache

Apache下设置虚拟主机之基于IP的虚拟主机

2012-01-04 19:50 288 查看
首先说两段废话:

1、什么是虚拟主机?

虚拟主机是指在一台服务器(硬件、软件)上运行多个网站。有两种方法在Apache服务器上设置虚拟主机。如果每个网站的IP地址不同,则虚拟主机是“基于IP”的;如果只有一个IP地址,可以是“基于主机名”的。

2、为什么要设置虚拟主机?

很显然,虚拟主机可以在一台服务器上运行多个网站,这样可以把多个网站移到一个服务器上,可以节约成本。

废话说完,现在介绍第一种方法:基于IP的虚拟主机设置:

我这里Apache按照上章配置,只是将Apache服务器的IP改为(192.168.0.104)。

另外,有三个网站,域名与IP的关系为:

www.whut1.com 192.168.0.11

www.whut2.com 192.168.0.12

www.whut3.com 192.168.0.13

步骤:

1、添加IP地址到eth0:

[root@localhost ~]# ifconfig eth0:1 192.168.0.11 up

[root@localhost ~]# ifconfig eth0:2 192.168.0.12 up

[root@localhost ~]# ifconfig eth0:3 192.168.0.13 up

2、设置域名对应的IP地址,解析IP地址:

因为这里我没有做DNS,我就在hosts文件添加。hosts文件也可以将域名映射为IP。在linux下,hosts文件在:/etc/目录下:

[root@localhost ~]# vi /etc/hosts

打开后,在空白处添加:

192.168.0.11 www.whut1.com

192.168.0.12 www.whut2.com

192.168.0.13 www.whut3.com

3、设置各个虚拟机存放网页的根目录:

[root@localhost ~]# mkdir /whut

[root@localhost ~]# mkdir /whut/htdocs1

[root@localhost ~]# mkdir /whut/htdocs2

[root@localhost ~]# mkdir /whut/htdocs3

4、分别在各个目录下写入测试文件:

在htdocs1目录下写入一个test1.php

<?php
phpinfo();
?>
在htdocs2目录下写入一个test2.php

<?php
phpinfo();
?>
在htdocs3目录下写入一个test3.php

<?php
phpinfo();
?>
5、修改主配置文件http.conf:

上一节中,我将主配置文件放在了:/etc/httpd/目录下,打开http.conf:

[root@localhost ~]# vi /etc/httpd/httpd.conf

打开后,用“/Virtual hosts”找到Virtual hosts这个辅助配置文件,去掉“#Include /etc/httpd/extra/httpd-vhosts.conf

”,这个里面的“#”(其实也就是加载Virtual hosts这个辅助配置文件)

6、修改Virtual hosts这个辅助配置文件:

[root@localhost ~]# vi /etc/httpd/extra/httpd-vhosts.conf

进入这个目录后,先要注释掉:

“NameVirtualHost *:80”(前面加#),

然后注释掉所有的:

#<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host.example.com

# DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"

# ServerName dummy-host.example.com

# ServerAlias www.dummy-host.example.com

# ErrorLog "logs/dummy-host.example.com-error_log"

# CustomLog "logs/dummy-host.example.com-access_log" common

#</VirtualHost>

为什么要注释掉呢,是因为如果不注释掉,重新启动apache的时候会出现警告。

注释掉之后,然后添加:

<VirtualHost 192.168.0.11:80>
ServerName www.whut1.com
DocumentRoot /whut/htdocs1/
<Directory "/whut/htdocs1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.12:80>
ServerName www.whut2.com
DocumentRoot /whut/htdocs2/
<Directory "/whut/htdocs2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.13:80>
ServerName www.whut3.com
DocumentRoot /whut/htdocs3/
<Directory "/whut/htdocs3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
7、保存,然后重新启动Apache服务器:

[root@localhost ~]# service httpd restart

8、在linux的浏览器中输入:
http://www.whut1.com,出现下面的图片:


同理分别输入www.whut2.com、www.whut3.com也会出现类似的图片。

注意,这个时候在windows的浏览器里面输入域名是找不到的,只能输入IP地址找到。为什么呢?

请看下面9:

9、修改windows的hosts:

之所以在windows下面输入域名找不到,是因为windows的浏览器无法解析域名(没有DNS嘛)。这样就要修改windows下面的hosts,怎么修改呢?用文本编辑器打开“C:\windows\system32\drivers\ete\hosts”。然后在最下面添加:

192.168.0.11
www.whut1.com

192.168.0.12 www.whut2.com

192.168.0.13 www.whut3.com

这样也可以在windows下面打开噢:,看下图:



这样就配置成功了。下面一节将配置基于主机名的虚拟主机。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: