[关闭]
@52fhy 2015-07-28T18:47:10.000000Z 字数 2872 阅读 539

Apache 配置虚拟主机三种方式

Apache


一、基于IP

  1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:
  1. [root@localhost root]# ifconfig eth0:1 192.168.1.11
  2. [root@localhost root]# ifconfig eth0:2 192.168.1.12
  3. [root@localhost root]# ifconfig eth0:3 192.168.1.13
  1. 修改hosts文件,添加三个域名与之一一对应:
  1. 192.168.1.11 www.test1.com
  2. 192.168.1.12 www.test2.com
  3. 192.168.1.13 www.test3.com
  1. 建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html
  1. /www/test1/1.html
  2. /www/test2/2.html
  3. /www/test3/3.html
  1. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
  1. <VirtualHost 192.168.1.11:80>
  2.   ServerName www.test1.com
  3.   DocumentRoot /www/test1/
  4.   <Directory "/www/test1">
  5.     Options Indexes FollowSymLinks
  6.      AllowOverride None
  7.      Order allow,deny
  8.      Allow From All
  9.   </Directory>
  10. </VirtualHost>
  11. <VirtualHost 192.168.1.12:80>
  12.   ServerName www.test1.com
  13.   DocumentRoot /www/test2/
  14.   <Directory "/www/test2">
  15.     Options Indexes FollowSymLinks
  16.      AllowOverride None
  17.      Order allow,deny
  18.      Allow From All
  19.   </Directory>
  20. </VirtualHost>
  21. <VirtualHost 192.168.1.13:80>
  22.   ServerName www.test1.com
  23.   DocumentRoot /www/test3/
  24.   <Directory "/www/test3">
  25.     Options Indexes FollowSymLinks
  26.      AllowOverride None
  27.      Order allow,deny
  28.      Allow From All
  29.   </Directory>
  30. </VirtualHost>
  1. 大功告成,测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com

二、基于主机名

  1. 设置域名映射同一个IP,修改hosts:
  1. 192.168.1.10 www.test1.com
  2. 192.168.1.10 www.test2.com
  3. 192.168.1.10 www.test3.com
  1. 跟上面一样,建立虚拟主机存放网页的根目录
  1. /www/test1/1.html
  2. /www/test2/2.html
  3. /www/test3/3.html
  1. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

      为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。

      下一步就是为你建立的每个虚拟主机设定配置块,的参数与NameVirtualHost指令的参数是一样的。每个定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

      如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

  1. NameVirtualHost *:80
  2. <VirtualHost *:80>
  3.   ServerName *
  4.   DocumentRoot /www/
  5. </VirtualHost>
  6. <VirtualHost *:80>
  7.   ServerName www.test1.com
  8.   DocumentRoot /www/test1/
  9.   <Directory "/www/test1">
  10.     Options Indexes FollowSymLinks
  11.     AllowOverride None
  12.     Order allow,deny
  13.     Allow from all
  14.   </Directory>
  15. </VirtualHost>
  16. <VirtualHost *:80>
  17.   ServerName www.test2.com
  18.   DocumentRoot /www/test2/
  19.   <Directory "/www/test2">
  20.     Options Indexes FollowSymLinks
  21.     AllowOverride None
  22.     Order allow,deny
  23.     Allow from all
  24.   </Directory>
  25. </VirtualHost>
  26. <VirtualHost *:80>
  27.   ServerName www.test3.com
  28.   DocumentRoot /www/test3/
  29.   <Directory "/www/test3">
  30.     Options Indexes FollowSymLinks
  31.     AllowOverride None
  32.     Order allow,deny
  33.     Allow from all
  34.   </Directory>
  35. </VirtualHost>
  1. 大功告成,测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com

三、基于端口

  1. 修改配置文件
      将原来的

        Listen 80
    改为
      Listen 80
       Listen 8080

  2. 更改虚拟主机设置:

  1. <VirtualHost 192.168.1.10:80>
  2. DocumentRoot /var/www/test1/
  3. ServerName www.test1.com
  4. </VirtualHost>
  5. <VirtualHost 192.168.1.10:8080>
  6. DocumentRoot /var/www/test2
  7. ServerName www.test2.com
  8. </VirtualHost>

转自:
Apache 配置虚拟主机三种方式 - hi_bazinga - 博客园
http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注