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
上一节中,我将主配置文件放在了:/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的时候会出现警告。
注释掉之后,然后添加:
[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下面打开噢:,看下图:
这样就配置成功了。下面一节将配置基于主机名的虚拟主机。。。
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下面打开噢:,看下图:
这样就配置成功了。下面一节将配置基于主机名的虚拟主机。。。
相关文章推荐
- Apache基于IP、基于port和基于域名的三种虚拟主机的配置方法
- Apache中的虚拟主机的配置(基于IP)
- 在linux平台上搭建目前企业公司中基于域名,ip以及端口的虚拟主机apache服务!还有
- 基于虚拟主机的 apache geoip设置
- apache虚拟主机基于域名,ip,端口,配置方法。
- Apache 设置多个虚拟主机使用一个 IP 地址
- APACHE环境下同IP多域名虚拟主机的设置方案全攻略[ubuntu 12, linux]
- Apache配置虚拟主机的三种方法(基于IP、端口、域名)
- Apache 一个ip多个域名设置(虚拟主机)
- Apache服务器虚拟主机设置问题-如何使通过IP访问为默认的apache页面 <转载>
- Apache 配置虚拟主机之2--基于 IP
- Apache 配置虚拟主机之3--基于IP+Port结合
- 用apache在本机配置多个基于ip的虚拟主机
- 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
- apache 基于域名,IP,端口 3种方式的虚拟主机
- debian下apache的虚拟主机配置,基于多IP和基于多域名的虚拟主机
- centos6.4 dns apache基于ip的虚拟主机
- Apache下的虚拟主机设置(基于域名的虚拟主机)
- apache 2.2设置单IP多端口的虚拟主机
- Apache基于IP的虚拟主机本地配置