设置基于域名的虚拟主机

admin  2016-07-10 20:30   Hits: 

基于域名的虚拟主机是根据客户端提交的http头中标识的主机名的部分决定的,使用这种技术,很多虚拟主机可以共享同一个ip地址。基于域名的虚拟主机相对比较简单,因为只需要设置你的DNS服务器将每个主机名映射到同一个IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。基于域名的虚拟主机具体配置如下:
 
1、设置域名映射同一个IP地址
2、设置各个虚拟主机存放网页的根目录
3、使用设置文件配置虚拟主机
 
·在主配置文件httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,在httpd.conf文件中找到下面的Include指令,将前面的"#"注释去掉即可。
 
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
为了使用基于域名的虚拟主机,你必须指定服务器IP地址(和可能的端口)来使主机接受请求,这个可以用NameVirualHost指令来进行配置,如果服务器上所有的IP地址都会用到,你可以用"*"作为NameVirualHost的参数,如果你打算使用多端口如运行SSL你必须在参数中指定一个端口号,比如"*.80",请注意,在NameVirualHost指令中指定IP地址并不会使服务器自动监听那个IP地址。另外,这里设定的IP地址必须对应服务器上的一个网络接口。
 
下一步为每个虚拟主机建立<VirtualHost>段<VirtualHost>的参数与NameVirtualHost的参数必须是一样的(比如说,一个IP地址或"*"代表的所有地址)。在每个<VirtualHost>段中,至少要有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容位于文件系统的什么地方。
如果你想在现有的Web服务器上增加虚拟主机,你必须也为现存的主机建造一个<VirtualHost>定义块,这个虚拟主机中ServerName和DocumenRoot所包含的内容应该与全局的ServerName和DocumentRoot保持一致。还要把这个虚拟主机放在配置文件的最前面,来让它扮演默认主机的角色。
打开Apache虚拟主机的附加配置文件httpd-vhosts.conf,写入下面的内容配置虚拟主机:
 
<VirtualHost *:80>
   ServerName www.example.com
   DocumentRoot /www/example/
  <Directory "/www/example">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
 
当然,可以在上面的配置文件中用一个固定的IP地址来代替NameVirtualHost和<VirtualHost>指令中的"*"号,以达到一些特定的目标,比如说,你可能会希望在一个IP地址上运行一个基于域名的虚拟主机,而在另一个IP地址上运行一个基于IP的或是另外一套基于域名的虚拟主机
 
上一篇:.htaccess文件和访问限制
下一篇:Linux下光驱挂载与卸载以及解决取消挂载时的De