Apache基于IP地址的虚拟主机支持
系统需求
如何配置Apache
设置多个守护进程
配置拥有多个虚拟主机的单一守护进程
参见
基于域名的虚拟主机支持
系统需求
就像它的名字基于IP所暗示的那样这样的服务器中每个基于IP的虚拟主机必须拥有不同的IP地址。您可以用真实的物理网络链接来达到这一需求或者使用虚拟界面——几乎现在流行的操作系统都提供这样的支持详情请参见您的系统文档这种功能一般被称作“IP别名” 而一般用“ifconfig”命令来进行设置 。
如何配置Apache
有两种配置方法来使apache支持多主机每个主机名用不同的httpd守护进程来运行或者用一个守护进程来支持所有的虚拟主机。
出现以下情况时用多个守护进程
出于安全的考虑比如说公司甲不希望公司乙的任何人能用除web以外的
方式访问到他们的数据。在这种情况下您需要启动两个守护进程。每个
都用不同的User Group Listen和ServerRoot设定。
您能够为您机器上的每个IP别名提供内存和文件描述符需求。您只能侦
听一个“通配符型”地址或一个特定的地址。所以不管出于什么原因如
果您需要侦听一个特定的地址您就必须同时侦听所有特定的地址。 尽
管可以让一个httpd侦听N-1个地址而让另一个侦听剩下的地址。 以下情况可以使用单一守护进程
httpd的配置可以为多个虚拟主机共享而不引起麻烦。
机器要接受大量的访问请求从而多启动一个守护进程会导致性能的大幅
度降低。
设置多个守护进程
为每个虚拟主机创建不同的httpd安装。每次安装都在配置文件中使用Listen 指令以选择守护进程伺服的IP地址或虚拟主机 。 比如
Listen www. smallco.com:80
建议您使用IP地址来取代域名理由请参见DNS caveats 。
配置拥有多个虚拟主机的单一守护进程
在这种情况下单一的httpd将伺服所有对主服务器和虚拟主机的请求。而配置文件中的VirtualHost指令将为每个虚拟主机配置不同的ServerAdminServerName DocumentRoot ErrorLog和TransferLog或CustomLog。例如<VirtualHost www. smallco.com>
ServerAdmin webmaster@mail. smallco.com
DocumentRoot /groups/smal lco/www
ServerName www. smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>
<VirtualHost www.baygroup.org>
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
我们建议您使用IP地址以取代域名理由请参见DNS caveats 。
除了创建进程的指令和其他一些指令外几乎所有的配置指令都能用于VirtualHost指令中。您可以使用指令索引在上下文中查询一个指令是否可以用于VirtualHost指令。
如果使用了suEXEC wrapper那么User和Group也可以在VirtualHost指令中使用。
安全警示当指定日志文件时请记住有安全风险。一些别有用心的人会在那个目录拥有写权限。请参见安全方面的提示一文获取详情。