直奔主题!!!
使用虚拟主机必须要注释掉httpd的主机模块,即修改httd.conf的主配置文件,找到
apche的虚拟主机配置一共有三种,即基于IP、基于port、以及基于域名的。为了后面试验,需要配置两个IP地址(我主机现在的IP地址是10.10.50.100),命令如下:
#ip addr add 10.10.50.101/16 dev eth0
#ip addr add 10.10.50.102/16 dev eth0
关于如何配置IP地址,此处不再赘述,后面我会专门写篇关于IP地址的文章。
第一种:基于IP
apache默然安装的时候,主配置文件位于/etc/httpd/conf/下的httpd.conf,可以在该文件的最下面来添加虚拟主机,但是我习惯于重新建立一个虚拟主机配置文件,这样方便与日后的管理操作。
1.创建虚拟主机配置文件
# mkdir /etc/httpd/conf.d/virtual.conf
2.编辑该文件,添加如下内容
ServerName www.longfei.com
DocumentRoot "/www/longfei.com"
ServerName www.longfei2.com
DocumentRoot "/www/longfei2.com"
------保存退出即可,这是最简单的配置3.创建跟目录文件
#mkdir /www/{longfei.com,longfei2.com}
4.在跟目录文件下创建主页文件,用于后面的访问测试
#vi /www/longfei2.com/index.html,添加一下内容
保存退出。然后编辑另一个目录下面的主页文件
#vi /www/longfei2.com/index.html,添加一下内容
service httpd restart
6.客户端访问测试
分别在浏览器内输入:
10.10.50.100和
10.10.50.101
会看到我们之间定义的主页。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二种 基于端口Port的虚拟主机
同样使用上面创建的vitual.conf作为配置文件,假设我们此时使用80和8080端口,IP地址为10.10.50.102
1.修改httpd的主配置文件,vi /etc/httpd/conf/httpd.conf
首先将Listen 80前面的注释去掉,然后再添加一行Listen 8080,保存退出。
2.修改虚拟主机配置文件,添加如下内容
ServerName www.a80.com
DocumentRoot "/www/a80.com"
ServerName www.a80.org
DocumentRoot "/www/a80.org"
3.创建所需的根文件#mkdir /www/{a80.com,a80.org}
4.创建各根文件的默认访问页面,创建过程同第一种步骤四,这是把里面的内容换成你能识别的就可以了。我使用的分别是a80.com和a80.org两个表示符。
5.检查语法
httpd -t
6.重启服务7.访问测试
分别在浏览器上输入10.10.50.102以及10.10.50.102:8080,因为浏览器默认是使用80端口,所以当访问80端口的网站时可以不用指定端口。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三种 基于域名的虚拟主机
1.基于域名的虚拟主机,首先要在虚拟配置文件中指定IP:PORT,即修改虚拟配置文件,在第一行添加NameVirtualHost 10.10.50.100:80
然后在下面添加以下信息
ServerName hello.longfei.com
DocumentRoot "/hello/longfei.com"
ServerName hello.longfei.org
DocumentRoot "/hello/longfei.org"
2.创建所需的跟文件目录mkdir /hello/{longfei.com,longfei.org}
3.编辑根文件目录下面的主页文件,参照上面的方法
4.修改客户端主机的hosts文件,确保可以正常解析咱们设定的两个域名
hosts文件位于/C/windows/Drivers/etc/hosts(好像是的,记得不太清楚了,童鞋们可以百度一下)
添加以下两列
10.10.50.100 hello.longfei.com
10.10.50.100 hello.longfei.org
5.通过ping命令确保可以正常解析
即ping hello.longfei.com和ping hello.longfei.org都显示是通的,且返回值为10.10.50.100即可。
6.重启httpd服务
7.浏览器测试
分别在浏览器里输入hello.longfei.com和hello.longfei.org然后查看主页面是不是我们之前的标识页面即可。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充:
1.虚拟主机也支持访问日志和错误日志的位置重定义,即只需要在DocumentRoot 下面添加进日志信息条目即可,比如我要让hello.longfei.org的访问日志和错误日志都重定位到/hello/longfei.org/log下面,需要添加这行
CutomLog "/hello.longfei.org/log" combined
ErrorLog "/hello/longfei.org/log"
保存退出之后,再创建longfei.org下面的log目录即可。
2.虚拟主机也支持返回服务器的状态信息
例如我要显示服务器,只要在httpd的主配置文件中将
3.虚拟主机同样支持真实主机一样的访问限制,具体内容请参考http://blog.csdn.net/brad_chen/article/details/45749123