服务器实例可以包含任意数量的 HTTP 侦听器(安全和非安全侦听器)。您可以使用基于 IP 地址的虚拟服务器,也可以使用基于 URL 主机的虚拟服务器。
每个虚拟服务器都可以(而非必须)拥有自己的 ACL 列表、mime.types 文件和 Java Web 应用程序集。
此设计提供了最大的灵活性,使您可以为各种应用程序配置服务器。以下示例讨论了一些可用于 Web Server 的配置。
在安装新的 Web Server 后,将会创建一个服务器实例。该服务器实例只使用一个 HTTP 侦听器,它在端口 80(或安装时所选的任何端口)上侦听为计算机配置的任何 IP 地址。
本地网络中的某些机制为计算机配置的每个地址都建立了名称-地址映射。以下示例中的计算机有两个网络接口: 地址 127.0.0.1 上的回送接口(即使在没有网卡的情况下仍然存在的接口)和地址 10.0.0.1 上的以太网接口。
名称 example.com 通过 DNS 映射为 10.0.0.1。HTTP 侦听器被配置为在端口 80 上侦听为计算机配置的任何地址("ANY:80" 或 "0.0.0.0:80")。
在此配置中,到以下地址的连接将到达服务器并由虚拟服务器 VS1 处理。
http://127.0.0.1/(在 example.com 上启动)
http://localhost/(在 example.com 上启动)
http://example.com/
http://10.0.0.1/
此配置适用于传统的 Web 服务器。无需添加附加的虚拟服务器或 HTTP 侦听器。
请参见为服务器配置 SSL。
一种更复杂的 Web Server 配置是,服务器在内联网部署中托管几个虚拟服务器。例如,假设您有三个内部站点,员工可在这些站点中查找其他用户的电话号码、查看校园地图以及跟踪发送到信息服务部门的请求的状态。以前(在本示例中),这些站点托管在三个不同的计算机中,这些计算机映射为名称 phone.example.com、maps.example.com 和 is.example.com。
为了将硬件和管理开销减少到最低程度,用户可以将这三个站点合并为计算机 example.com 上的一个 Web 服务器。可以使用以下两种方法进行此设置: 使用基于 URL 主机的虚拟服务器或使用单独的 HTTP 侦听器。两者都有明显的优点和缺点。
使用基于 URL 主机的虚拟服务器的内部网托管
尽管基于 URL 主机的虚拟服务器易于设置,但它们具有以下缺点:
在此配置中支持 SSL 需要使用通配符证书进行非标准设置。
基于 URL 主机的虚拟服务器不能与传统的 HTTP 客户机一起使用。
您也可以设置基于 IP 地址的配置,每个地址一个 HTTP 侦听器:
使用单独的 HTTP 侦听器的内部网托管
基于 IP 地址的虚拟服务器的优点包括:
它们可以与不支持 HTTP/1.1 Host 标头的旧客户机一起使用。
提供 SSL 支持比较简便。
缺点包括:
它们要求更改主机上的配置(实际或虚拟网络接口的配置)。
它们不能缩放至具有上千个虚拟服务器的配置。
两种配置都要求为三种名称设置名称到地址的映射。在基于 IP 地址的配置中,每个名称都映射为不同的地址。必须对主机进行设置,才能接收所有这些地址上的连接。在基于 URL 主机的配置中,所有名称都可以映射为同一地址(计算机最初具有的地址)。
具有多个 HTTP 侦听器的配置所带来的性能增益可能最少,因为服务器不必查明传入请求的地址。但是由于其他接收方线程,使用多个 HTTP 侦听器也将导致额外开销(内存和调度)。
海量托管是一个可以启用许多低通信量虚拟服务器的配置。例如,ISP(托管许多低通信量的个人主页)便属于海量托管。
虚拟服务器通常基于 URL 主机。例如,可能有一个配置只允许静态内容,而另一个配置允许静态内容和 CGI。