Tomcat 服务器体系结构

connector 监听端口,监听到以后,交给 Engine 引擎 处理,引擎会根据请求找到对应的主机,找到主机后再去找对应的应用。
如果我们将 port 改为 80,那访问的时候就不用输入端口号,因为 80 是默认端口:


这就是tomcat 服务器 的体系
关于虚拟主机:
查看一下 host 文件,如果没显示,取消系统对文件夹的默认隐藏和受保护文件隐藏的选项即可

我们看到,默认 127.0.0.1 对应的是 localhost

过程就是,输入localhost,浏览器会去host文件里去找,如果找到 ip,就访问
如果输入 www.baidu.com ,在host文件里找到了 127.0.0.1 ,浏览器就会去访问 127.0.0.1

如果host文件被别人改了,那我们在访问某个网址的时候,可能就会访问到别人指定的网站上去,比如钓鱼网站等

访问 localhost/myproject2/ (此时端口已经改为 80),访问到内容了

流程:localhost,去本机发送了 端口号为 80 的请求,来到了这里:

然后来到引擎处理

主机的名字叫 localhost,来到下图所示的地方:

然后找应用 myproject2

再访问一个

两个host

来到 m.myxq.com (本机host文件改过了)
在这个host 里找到了 path = "/myp1" ,所以找到这个应用了,然后到 docBase 里找到对应的项目,然后把内容显示出来了。

另外:
我们可以两个域名指向同一个iP
比如,m.taobao.com 手机端淘宝,这是一个项目
www.taobao.com ,这也是一个项目,
两个不同的项目,用不同的url 都可以访问到同一个ip,这个时候他访问的是同一个服务器了,但是我们可以访问到各自映射到的项目

如果是 m.myxq.com 就是下面这个 host,然后到 Context, 根据path,到docBase 对应的找到 各自的项目
关于虚拟主机
- 输入网址时,会先到 host 文件中查找有没有对应的ip地址,如果有就直接访问该IP
- 如果没有,就会去外网找DNS服务器进行域名与IP 地址的解析,查找
- 多个域名可以访问同一个ip
- 一个ip 对应一台电脑
Tomcat 服务器体系结构的更多相关文章
- JavaWeb---总结(四)Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下: 范例:将JavaWebDemoProject这个Ja ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- java web 学习三(Tomcat 服务器学习和使用2)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- Tomcat服务器常用配置和HTTP简介
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- 重温web服务器--细说Tomcat服务器
从大学开始接触java web的开发时就开始使用tomcat部署web项目,对它的理解仅仅停留在"这是个开源免费的servlet容器"的阶段,后来也接触了一些tomcat的体系,原 ...
- JavaEE:Tomcat服务器常用配置和HTTP简介
Web服务器常用配置1.Web系统采用B/S结构通信的:Browser --- Server1)浏览器向服务器发送访问目标资源请求(请求)2)服务器根据请求的目标资源路径,在服务器端进行查找(请求查找 ...
- javaWeb学习总结(1)- Tomcat服务器学习和使用(3)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3744053.html 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWe ...
随机推荐
- elasticsearch fitler查询例子
- mongodb insert()、save()的区别
mongodb 的 insert().save() ,区别主要是:若存在主键,insert() 不做操作,而save() 则更改原来的内容为新内容. 存在数据: { _id : 1, " ...
- matlab矩阵中如何去掉重复的行;如何找到相同的行,并找到其位置
找到了2个函数:unique和ismember 1. 去掉其中的重复行:unique 例子: IDX = [,,; ,,; ,,; ,,; ,,; ,,]; classNo = unique(IDX, ...
- 深入redis内部之redis启动过程之二
接上文,继续分析代码 1. 设置线程安全模式 zmalloc_enable_thread_safeness();/*设置线程安全标识符为1*/ void zmalloc_enable_thread_s ...
- JavaScript对象 创建对象(一)
创建对象 --以下内容来自JavaScript高级程序设计 工厂模式 用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job){ var o ...
- JavaScript数据类型 数据转换
JavaScript数据类型分为两种:原始类型和对象类型,原始类型有:number(数字).string(文本).boolean(布尔值).null(空).undefined(未定义):对象类型有:A ...
- CentOS初使用命令总结
最近买了一台aliyun(ECS服务器)用来学习使用,初次使用难免要走弯路.遇到一些问题好长时间解决不了,结果经人指点豁然开朗.于是乎,总结了一些新生上路经验. 首先要解决的问题是:通过PuTTY.S ...
- DJango小总结一
views.py def func(request): # 包含所有的请求数据 ... ...
- python 之闭包
原文 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): a ...
- html-框架标签的使用
<frameset> - rows:按照行进行划分 ** <frameset rows="80,*"> - cols:按照列进行划分 ** <fram ...