tomcat建立虚拟主机
WEB浏览器与WEBserver建立连接后,除了将请求URL中的资源路径发送给WEBserver外,还会将URL中的主机名部分作为HTTP请求消息的Host头发送给WEBserver。比如,在浏览器地址栏中输入http://www.it315.org,浏览器发送给www.it315.org主机上的WEBserver的请求消息内容例如以下:
GET / HTTP/1.1<回车>
Host: www.it315.org<回车>
<回车>
WEBserver接收到浏览器的訪问请求消息后,依据Host头字段中所设置的主机名,就知道该选择哪个WEB网站来进行响应,因此,能够使用不同的主机名来作为区分同一个WEBserver上的不同网站的标识信息。
Tomcat的Server.xml配置文件里有一个<Host>元素,一个<Host>元素用于建立一个WEB网站,使用多个<Host>元素则能够建立多个WEB网站。<Host>元素的父级的元素中为<Engine>元素,嵌套在同一个<Engine>元素中的多个<Host>元素的name属性不能同样,<Host>元素的name属性指定WEB网站所相应的主机名称。Tomcat的Server.xml配置文件里初始设置的<Host>元素内容例如以下:
<Host name="localhost" appBase="webapps" …>
…
</Host>
<Host>元素中的appBase属性指定了一个路径,该路径将作为嵌套在它里面的<Context>元素的docBase属性中设置的相对路径的基准路径。
当Tomcat接收到訪问请求时,将比較请求消息中的Host头字段的值与<Host>元素的name属性值,并以匹配的<Host>元素所创建的WEB网站来响应。假设Server.xml文件里没有与请求消息的Host头字段匹配的<Host>元素,Tomcat将以默认的WEB网站来响应。仅仅要<Engine>元素的defaultHost属性设置为嵌套在它里面的某个<Host>元素的name属性值,该<Host>元素所创建的WEB网站就成了该引擎的默认WEB网站。比如,Tomcat的Server.xml文件里的<Engine>元素的默认设置例如以下:
<Engine name="Standalone" defaultHost="localhost" debug="0">
…
<Host name="localhost" appBase="webapps" …>
…
</Host>
…
</Engine>
上面的这段配置信息说明,该引擎的默认WEB网站为嵌套在<Engine>元素中的name属性为“localhost”的<Host>元素所创建的WEB网站。
在同一台计算机上建立了多个基于主机名的虚拟主机后,WEB浏览器要訪问当中的某个虚拟主机的资源时,在訪问URL中必须採用主机名,而不能採用IP地址。这是由于WEB浏览器要将URL中的主机名部分作为HTTP请求消息的Host头发送给WEBserver,假设URL中的主机名部分使用的是IP地址,那么,浏览器发出的请求消息中的Host头字段的值就是这个IP地址,而在同一台计算机上建立的多个基于主机名的虚拟主机共享同一个IP地址,在Host头字段使用IP地址根本就无法区分不同的网站。
即使在URL中指定的是主机名时,WEB浏览器还是要先获得该主机名所相应的IP地址,然后再使用这个IP去连接WEBserver。所以,在建立基于主机名的虚拟主机时,除了要在Tomcat的server.xml文件里进行设置外,还须要在整个网络系统中建立主机名与IP地址的映射关系,即必须将主机名加入到名称解析系统,以便WEB浏览器可以从名称解析系统中查询出主机名所相应的IP地址。建立主机名与IP地址的映射关系的惯用方式有两种:一是使用客户机本地的Hosts 文件,二是使用DNS(Domain Name System,域名系统)server。Hosts 文件和DNS的作用都是同意用户使用“友好”的、文本格式的主机名称,而不是数字格式的IP地址来訪问网络中的计算机。Hosts文件可用于小型的Intranet(企业内部网),网络中的全部计算机上都须要使用Hosts文件。DNS通经常使用于大型的网络,特别是Internet上对外提供服务的计算机都是通过DNS来建立其主机名与IP地址的映射关系。客户机首先在本地的Hosts文件里查找主机名称所映射的IP地址,假设没有找到,再去查询DNSserver。为了简单起见,这里仅介绍一下Hosts文件。对于Windows 2000系统,Hosts 文件位于操作系统根文件夹(取决操作系统所在的分区,一般是c:/winnt)下的System32/Drivers/Etc子文件夹中,默认情况下,该文件里有例如以下一行内容:
127.0.0.1 localhost
这行文本的作用就是将IP地址(127.0.0.1)映射成主机名(localhost),这也就是在IE浏览器地址栏中能够使用localhost訪问本地WEBserver的原因。假设要添加很多其它的主机名与IP地址的映射,能够在Hosts文件里添加很多其它的行,然后參照上面这行内容的格式在每行中填写IP地址和对应的主机名。

注意:当使用安全套接字层 (SSL) 时,不能使用主机头字段来实现虚拟主机,这是由于使用SSL的HTTP请求有加密保护。主机头字段是加密内容的一部分,不能被解释和路由到正确的网站。
tomcat建立虚拟主机的更多相关文章
- Tomcat之虚拟主机配置以及web应用配置
Tomcat之虚拟主机配置以及web应用配置 Tomcat文件夹结构例如以下: bin ---- 启动和关闭须要的bat文件所在的文件夹 conf --- 配置文件夹 lib --- tomcat执 ...
- tomcat配置虚拟主机
在眼下,非常多server都是一台server对外能够訪问非常多个javaEE的项目,这样的实现方式就须要在tomcat里面配置虚拟主机了!以下就说说怎样配置虚拟主机: 找到tomcat的安装文件夹, ...
- Tomcat配置虚拟主机、tomcat的日志
1.配置Tomcat的虚拟主机修改:vim /usr/local/tomcat9/conf/server.xml 添加一个虚拟主机:加入: <Host name="www.tomcat ...
- Tomcat定义虚拟主机案例
Tomcat定义虚拟主机案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备环境 1>.创建web程序的根目录 [root@yinzhengjie ~]# mkdir ...
- 二十二. 安装部署Tomcat服务器、使用Tomcat部署虚拟主机、使用Varnish加速Web
web proxy web1 web2 1.安装部署Tomcat服务器 web1 1.1 使用RPM安装JDK环境 ]# yum -y install java-1.8.0-openjdk ]# ...
- 高级运维(四):Nginx常见问题处理、安装部署Tomcat服务器、使用Tomcat部署虚拟主机
一.Nginx常见问题处理 目标: 本案例要求对Nginx服务器进行适当优化,以提升服务器的处理性能: 1> 不显示Nginx软件版本号 2> 如果客户端访问服务器提示“Too many ...
- Tomcat配置虚拟主机的两种方式
1.基于主机名的虚拟主机配置 在随意盘符下建立一个目录作为虚拟地址的目录.例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test 在tomcat/conf/se ...
- Tomcat配置虚拟主机后的登录验证码问题
先描述一下问题现象,在本地测试运行一个java web网站,一切正常.但把网站部署到Linux服务器上后,发现登录出了问题,提示验证码输入不正确.登录时需要输入验证码,而验证码的原值是先存入sessi ...
- tomcat部署虚拟主机-搭建两个应用以及httpd和Nginx的反向代理
实验环境:CentOS7 前提:已经安装好tomcat,未安装请查看http://www.cnblogs.com/wzhuo/p/7111135.html: 目的:基于主机名访问两个应用: [root ...
随机推荐
- iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸 ...
- poj1036-dp
http://poj.org/problem?id=1036 题目分析: 由题目很容易就能想到这道题目是DP题目. 当然,它的DP方程也不难得到: 定义状态:d[i,j] 表示在时间t=i且门状态为j ...
- MySQL学习笔记:MySQL: ERROR 1064(42000)
ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL s ...
- CSS兼容性常见问题总结
DIV+CSS设计IE6.IE7.FF 兼容性 DIV+CSS网页布局这是一种趋势,我也开始顺应这股趋势了,不过在使用DIV+CSS网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使 ...
- Transition 1
W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...
- iOS-OC-基础-NSNumber常用方法
/*===========================NSNumber数值对象=========================*/ // 将基本数据类型保存为NSNumber 对象类型 NSNu ...
- VS2012 运行项目在IE中可以运行,但是在google和firefox却不能打开。
笔记本重装了系统之后,打开VS2012 调试的时候,发现在IE下能够运行调试.net项目,但是使用google和firefox的时候却不能打开项目.苦思冥想不知道是怎么回事儿,后来经过在网上查阅各种资 ...
- 三星ssd转移系统
1. (正常模式)如果源磁盘小于目标磁盘 第 1 步 . 开始迁移 第 2 步 . 连接目标磁盘 ① 目标磁盘连接后,其状态会显示在屏幕上. ※ 如果您要连接 mSATA 产品,那么还需要 ...
- c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)
转载请注明出处,原文地址http://www.cnblogs.com/zenki-kong/p/4382657.html 刚开始写博客,博主还只是个大三汪,学艺不精,如有错误还请前辈指出(>^ω ...
- vmware9安装centos和Mac经验总结
其实以前安装过,但是这次安装发现还是很陌生 主要是因为以下几点vm11下载的最新版本结果不支持用vm-Mac激活包一直激活不成功,所以只好用vm9来进行,中间的细节操作就是要停止的那几项VMware服 ...