《tomcat基于主机名的虚拟主机》由会员分享,可在线阅读,更多相关《tomcat基于主机名的虚拟主机(8页珍藏版)》请在金锄头文库上搜索。
1、一、网站系统的组成一、网站系统的组成 只要在一台计算机上安装了 WEB 服务器软件,从功能上讲,这台计算机就可 以称为 WEB 服务器。一个网站的规模可大可小,功能可多可少,最简单的网 站只需要一台 Web 服务器即可对外提供网页浏览服务。复杂的网站包括多台 WEB 服务器组成的群集系统、负载均衡设备、具有缓存功能的代理服务器(可 以有多级,甚至包括放置在服务器端的缓存系统)、数据库系统等,如图 2.2 所示。图 网站系统采用的基本上就是图 2.2 所示的架构,不同地区的人们 在访问 站点时,浏览器实际上所访问的服务器是不一样的,例如, 吉林省的用户访问的服务器实际是 sina 放在吉林地
2、区的代理服务器,湖北省的 用户访问的服务器实际是 sina 放在湖北地区的代理服务器。各地区的浏览器访 问 站点的过程如图 2.3 所示。图 2.3为了能够让浏览器透明地访问到 WEB 站点,让用户感觉不到是在访问区域代 理服务器,在 DNS 系统中需要将 主机名指向所有的区域代理服 务器的 IP 地址。在浏览器访问 站点中的页面而向 DNS 服务器请 求解析 主机名时,DNS 服务器根据访问者的地理位置信息返回 他附近的区域代理服务器的 IP 地址,这样,浏览器的访问请求将发送给该区域 代理服务器。只有当区域代理服务器中没有浏览器要访问的页面时,区域代理 服务器才去从真正的 站点服
3、务器上获取该页面并进行缓存,以后 该区域的其他浏览器就都可以就近从区域代理服务器中访问到该页面了,从而 大大提高了访问效率和减少了网络流量。WEB 浏览器与浏览器与 WEB 服务器建立连接后,除了将请求服务器建立连接后,除了将请求 URL 中的资源路径发送中的资源路径发送 给给 WEB 服务器外,还会将服务器外,还会将 URL 中的主机名部分作为中的主机名部分作为 HTTP 请求消息的请求消息的 Host 头发送给头发送给 WEB 服务器。例如,在浏览器地址栏中输入服务器。例如,在浏览器地址栏中输入 http:/www.it315.org, 浏览器发送给浏览器发送给 www.it315.org
4、 主机上的主机上的 WEB 服务器的请求消息内容如下:服务器的请求消息内容如下:GET / HTTP/1.1Host: www.it315.orgWEB 服务器接收到浏览器的访问请求消息后,根据服务器接收到浏览器的访问请求消息后,根据 Host 头字段中所设置的主头字段中所设置的主 机名,就知道该选择哪个机名,就知道该选择哪个 WEB 站点来进行响应,因此,可以使用不同的主机站点来进行响应,因此,可以使用不同的主机 名来作为区分同一个名来作为区分同一个 WEB 服务器上的不同站点的标识信息。服务器上的不同站点的标识信息。Tomcat 的的 Server.xml 配置文件中有一个配置文件中有一个
5、元素,一个元素,一个元素用于建元素用于建 立一个立一个 WEB 站点,使用多个站点,使用多个元素则可以建立多个元素则可以建立多个 WEB 站点。站点。 元素的父级元素为元素的父级元素为元素,嵌套在同一个元素,嵌套在同一个元素中的多个元素中的多个 元素的元素的 name 属性不能相同,属性不能相同,元素的元素的 name 属性指定属性指定 WEB 站点所对应站点所对应 的主机名称。的主机名称。Tomcat 的的 Server.xml 配置文件中初始设置的配置文件中初始设置的元素内容如元素内容如 下:下:元素中的元素中的 appBase 属性指定了一个路径,该路径将作为嵌套在它里面的属性指定了一个
6、路径,该路径将作为嵌套在它里面的 元素的元素的 docBase 属性中设置的相对路径的基准路径。属性中设置的相对路径的基准路径。当当 Tomcat 接收到访问请求时,将比较请求消息中的接收到访问请求时,将比较请求消息中的 Host 头字段的值与头字段的值与 元素的元素的 name 属性值,并以匹配的属性值,并以匹配的元素所创建的元素所创建的 WEB 站点来响应。如站点来响应。如 果果 Server.xml 文件中没有与请求消息的文件中没有与请求消息的 Host 头字段匹配的头字段匹配的元素,元素, Tomcat 将以默认的将以默认的 WEB 站点来响应。只要站点来响应。只要元素的元素的 def
7、aultHost 属性属性 设置为嵌套在它里面的某个设置为嵌套在它里面的某个元素的元素的 name 属性值,该属性值,该元素所创建元素所创建 的的 WEB 站点就成了该引擎的默认站点就成了该引擎的默认 WEB 站点。例如,站点。例如,Tomcat 的的 Server.xml 文文 件中的件中的元素的默认设置如下:元素的默认设置如下:上面的这段配置信息说明,该引擎的默认上面的这段配置信息说明,该引擎的默认 WEB 站点为嵌套在站点为嵌套在元素中元素中 的的 name 属性为属性为“localhost”的的元素所创建的元素所创建的 WEB 站点。站点。在同一台计算机上建立了多个基于主机名的虚拟主机
8、后,在同一台计算机上建立了多个基于主机名的虚拟主机后,WEB 浏览器要访问其浏览器要访问其 中的某个虚拟主机的资源时,在访问中的某个虚拟主机的资源时,在访问 URL 中必须采用主机名,而不能采用中必须采用主机名,而不能采用 IP 地址。这是因为地址。这是因为 WEB 浏览器要将浏览器要将 URL 中的主机名部分作为中的主机名部分作为 HTTP 请求消息请求消息 的的 Host 头发送给头发送给 WEB 服务器,如果服务器,如果 URL 中的主机名部分使用的是中的主机名部分使用的是 IP 地址,地址, 那么,浏览器发出的请求消息中的那么,浏览器发出的请求消息中的 Host 头字段的值就是这个头字
9、段的值就是这个 IP 地址,而在同地址,而在同 一台计算机上建立的多个基于主机名的虚拟主机共享同一个一台计算机上建立的多个基于主机名的虚拟主机共享同一个 IP 地址,在地址,在 Host 头字段使用头字段使用 IP 地址根本就无法区分不同的站点。地址根本就无法区分不同的站点。即使在即使在 URL 中指定的是主机名时,中指定的是主机名时,WEB 浏览器还是要先获得该主机名所对应浏览器还是要先获得该主机名所对应 的的 IP 地址,然后再使用这个地址,然后再使用这个 IP 去连接去连接 WEB 服务器。所以,在建立基于主机服务器。所以,在建立基于主机 名的虚拟主机时,除了要在名的虚拟主机时,除了要在
10、 Tomcat 的的 server.xml 文件中进行设置外,还需要文件中进行设置外,还需要 在整个网络系统中建立主机名与在整个网络系统中建立主机名与 IP 地址的映射关系,即必须将主机名添加到名地址的映射关系,即必须将主机名添加到名 称解析系统,以便称解析系统,以便 WEB 浏览器能够从名称解析系统中查询出主机名所对应的浏览器能够从名称解析系统中查询出主机名所对应的 IP 地址。建立主机名与地址。建立主机名与 IP 地址的映射关系的惯用方式有两种:一是使用客户地址的映射关系的惯用方式有两种:一是使用客户 机本地的机本地的 Hosts 文件,二是使用文件,二是使用 DNS(Domain Nam
11、e System,域名系统,域名系统)服务器。服务器。 Hosts 文件和文件和 DNS 的作用都是允许用户使用的作用都是允许用户使用“友好友好”的、文本格式的主机名称,的、文本格式的主机名称, 而不是数字格式的而不是数字格式的 IP 地址来访问网络中的计算机。地址来访问网络中的计算机。Hosts 文件可用于小型的文件可用于小型的 Intranet(企业内部网),网络中的所有计算机上都需要使用(企业内部网),网络中的所有计算机上都需要使用 Hosts 文件。文件。DNS 通常用于大型的网络,特别是通常用于大型的网络,特别是 Internet 上对外提供服务的计算机都是通过上对外提供服务的计算机
12、都是通过 DNS 来建立其主机名与来建立其主机名与 IP 地址的映射关系。客户机首先在本地的地址的映射关系。客户机首先在本地的 Hosts 文件中查找文件中查找 主机名称所映射的主机名称所映射的 IP 地址,如果没有找到,再去查询地址,如果没有找到,再去查询 DNS 服务器。为了简单服务器。为了简单 起见,这里仅介绍一下起见,这里仅介绍一下 Hosts 文件。对于文件。对于 Windows 2000 系统,系统,Hosts 文件位于文件位于 操作系统根目录(取决操作系统所在的分区,通常是操作系统根目录(取决操作系统所在的分区,通常是 c:winnt)下的)下的 System32DriversE
13、tc 子目录中,默认情况下,该文件中有如下一行内容:子目录中,默认情况下,该文件中有如下一行内容:127.0.0.1 localhost这行文本的作用就是将这行文本的作用就是将 IP 地址(地址(127.0.0.1)映射成主机名()映射成主机名(localhost),这也),这也 就是在就是在 IE 浏览器地址栏中可以使用浏览器地址栏中可以使用 localhost 访问本地访问本地 WEB 服务器的原因。服务器的原因。 如果要增加更多的主机名与如果要增加更多的主机名与 IP 地址的映射,可以在地址的映射,可以在 Hosts 文件中增加更多的行,文件中增加更多的行, 然后参照上面这行内容的格式在
14、每行中填写然后参照上面这行内容的格式在每行中填写 IP 地址和相应的主机名。地址和相应的主机名。: :动手体验:动手体验:使用使用 Tomcat 建立基于主机名的虚拟主机建立基于主机名的虚拟主机(1)用)用 UltraEdit 打开打开/conf 目录下的目录下的 Server.xml 文件,使用文件,使用 “查找查找”菜单查找内容为菜单查找内容为“”的行,紧接该行下面增加一对的行,紧接该行下面增加一对 标签。参照前面的标签。参照前面的标签的属性设置情况,设置新增的标签的属性设置情况,设置新增的 标签的属性,并在它里面嵌套一个设置该标签的属性,并在它里面嵌套一个设置该 WEB 站点根目录的站点
15、根目录的 元素,最终的内容如下:元素,最终的内容如下:这样,将创建一个新的这样,将创建一个新的 WEB 站点。上面的站点。上面的元素的元素的 docBase 属性值被属性值被 设置为一个点(设置为一个点(.),即表示使用),即表示使用元素的元素的 appBase 属性中所设置的路径作属性中所设置的路径作 为这个为这个所映射的目录。所映射的目录。(2)在上面新增的)在上面新增的标签对下面再增加一对标签对下面再增加一对标签,标签, 并将它设置为如下形式:并将它设置为如下形式:这又创建了一个新的这又创建了一个新的 WEB 站点,该站点的主机名称为站点,该站点的主机名称为 site2,根目录对应的本,
16、根目录对应的本 地文件系统目录为地文件系统目录为 d:VirtualHost2。(3)在)在 d:盘下创建名称为盘下创建名称为 VirtualHost1 和和 VirtualHost2 两个目录,并在这两两个目录,并在这两 个目录中分别创建一个名为个目录中分别创建一个名为 test.html 的文件,在的文件,在 d:VirtualHost1test.html 文件文件 中写入如下一行内容:中写入如下一行内容:这是这是d:VirtualHost1目录中的目录中的 test.htmltest.html 文件文件在在 d:VirtualHost2test.html 文件中写入如下一行内容:文件中写入如下一行内容:这是这是d:VirtualHost2目录中的目录中的 test.htmltest.html 文件文件(4)保存修改后的)保存修改后的 Ser