服务器 频道

虚拟主机的例子(中)

  【IT168 服务器学院】在不同的端口上运行不同的站点。

  如果您想让同一IP的不同端口伺服多个域名。您可以借助在 “NameVirtualHost”标签中定义端口这样的方法来达到这个目的。如果您 想使用不带NameVirtualHost name:port的<VirtualHost name:port>或是直接用Listen指令,您的配置将无法生效。

服务器配置

  Listen 80
  Listen 8080
  
  NameVirtualHost 172.20.30.40:80
  NameVirtualHost 172.20.30.40:8080
  
  <VirtualHost 172.20.30.40:80>
  
ServerName www.example1.com
  DocumentRoot /www/domain-80
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40:8080>
  
ServerName www.example1.com
  DocumentRoot /www/domain-8080
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40:80>
  
ServerName www.example2.org
  DocumentRoot /www/otherdomain-80
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40:8080>
  
ServerName www.example2.org
  DocumentRoot /www/otherdomain-8080
  
</VirtualHost>

建立基于IP的虚拟主机

  一个有两个IP地址(172.20.30.40172.20.30.50)分别对应域名 www.example1.comwww.example2.org的服务 配置如下:

服务器配置

  Listen 80
  
  <VirtualHost 172.20.30.40>
  
DocumentRoot /www/example1
  ServerName www.example1.com
  
</VirtualHost>
  
  <VirtualHost 172.20.30.50>
  
DocumentRoot /www/example2
  ServerName www.example2.org
  
</VirtualHost>

  如果存在主服务器(main server),那么对没有出现在任一个 <VirtualHost>指令中的请求(比如,对 localhost的请求)都会由主服务器来伺服。

混用基于端口和基于IP的虚拟主机

  如果您的服务器有两个IP地址(172.20.30.40172.20.30.50)分别对应域名 www.example1.comwww.example2.org。对每 个域名,您都希望在80端口和8080端口发布您的网站。您可以这样配置:

服务器配置

  Listen 172.20.30.40:80
  Listen 172.20.30.40:8080
  Listen 172.20.30.50:80
  Listen 172.20.30.50:8080
  
  <VirtualHost 172.20.30.40:80>
  
DocumentRoot /www/example1-80
  ServerName www.example1.com
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40:8080>
  
DocumentRoot /www/example1-8080
  ServerName www.example1.com
  
</VirtualHost>
  
  <VirtualHost 172.20.30.50:80>
  
DocumentRoot /www/example2-80
  ServerName www.example1.org
  
</VirtualHost>
  
  <VirtualHost 172.20.30.50:8080>
  
DocumentRoot /www/example2-8080
  ServerName www.example2.org
  
</VirtualHost>

混用基于域名和基于ip的虚拟主机

  如果您想在一些地址上配置基于域名的虚拟主机而在另外一些配置基于 IP的虚拟主机。

服务器配置

  Listen 80
  
  NameVirtualHost 172.20.30.40
  
  <VirtualHost 172.20.30.40>
  
DocumentRoot /www/example1
  ServerName www.example1.com
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40>
  
DocumentRoot /www/example2
  ServerName www.example2.org
  
</VirtualHost>
  
  <VirtualHost 172.20.30.40>
  
DocumentRoot /www/example3
  ServerName www.example3.net
  
</VirtualHost>
  
  # IP-based
  <VirtualHost 172.20.30.50>
  
DocumentRoot /www/example4
  ServerName www.example4.edu
  
</VirtualHost>
  
  <VirtualHost 172.20.30.60>
  
DocumentRoot /www/example5
  ServerName www.example5.gov
  
</VirtualHost>

0
相关文章