分布式技术-Tomcat容器01 | QiuRiMangCao
@author QiuRiMangCao | 秋日芒草
@Description 分布式技术 | Tomcat容器 | 01 | 其他
@time 2017-08-11
[Tomcat容器]
区域代理服务器的作用?
答:结合DNS,让浏览器访问最近的代理服务器,
让后代理服务器收集请求后通过负载均衡去访问具体的服务器。
区域代理是怎么实现的?
答:地区1-访问dns拿到网站的ip地址-返回区域代理服务器的ip地址-区域代理服务器缓存-请求具体的web服务器
/temp:运行时产生临时文件存放目录
server.xml :相当于一个总的tomcat容器
tomcat结构
<Service name="Catalina"> 一个Service就是一个站点
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 连接器
<Engine defaultHost="localhost" name="Catalina"> 引擎
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> 域名
<context> 内容
Service 包含connector和container的集合
<Server port="8005" shutdown="SHUTDOWN"> 管理tomcat所有组件,可以包含多个Service
http请求-connector连接-container的引擎Engine
connector用于接收外部请求,socket暴露端口,根据protocol协议来接收请求,并封装request和response
container
Engine :pipeline(接收connector请求通过管道的设计模式依次传递给子容器)客户端处理引擎
Host : web服务器的虚拟主机
context
部署web容器的上下文
清楚架构设计和每个模块的功能后,可以详细的阅读以下源代码
阅读源码的方式:将源码下载到本地,并跑起来,断点去调试源代码
tomcat源码入口:Bootstrap.java 中 main方法
如何配置服务端的本地目录映射成web站点目录,提供给客户端访问?
答:该web站点称为虚拟目录,并且一个虚拟目录只有一个虚拟根目录,其他的为子目录
为什么访问:http://localhost:8080/就能访问到tomcat根目录?
答:tomcat会默认去去webapps下的root应用下的程序
我们如何设置自己的虚拟根目录和子目录?
答:
1. appBase="webapps" 将root子目录映射为根目录
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
2. 在Server.xml中设置<Context> 通过在host节点下设置context
<Context path="" docBase="" /> path:访问目录目录的路径,必须为空,才能访问我们存放docBase下的文件
docBase:指定虚拟目录映射到服务器端本地文件系统的路径
docBase:配置为相对路径是相对于appBase="webapps"来的
创建虚拟子目录方式
方法1:
<Context path="/virtual" docBase="" /> /virtual就是虚拟子目录
可以通过http://localhost:8080/virtual/来访问
方法2:
D:\apache-tomcat-8.0.43\conf\Catalina\localhost下
<Context path="/virtual" reloadble="true" docBase="" /> /virtual就是虚拟子目录
方法3
<Context path="/virtual" reloadble="true" docBase="D:\DEMO.war" />
方法4
在host元素下的appbase属性设置应用程序的基准目录中如何WEB-INF/web.xml
这样我们可以通过server.xml这4中方法来找公司项目部署的位置
一个文件系统目录可以被映射成为多个虚拟web目录
虚拟web子目录名称可以是多级目录结构形式
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
配置unpackWARs="false" 这样可以不解压war
Host中的主机名不能重复
基于主机名的虚拟主机
1.在server.xml中配置多个站点
2.修改system32/drivers/etc/hosts
3.通过www.baidu.com:8080/index.html就能使用
基于端口号
一个tomcat部署二个应用可以用多个Service来区分,端口号不同来通过nginx来反代
注意二个service的name不能重复
建议使用虚拟子目录来管理不同项目就行,
<Context path="/virtual" reloadble="true" docBase="D:\DEMO.war" />
不同的path定位到不同的应用
task:1.tomcat源码下载
2.pipeline介绍
3.Charles工具的安装
4.反射
5.如何调用main方法
6.tomcat运行支持的3种模式
7.分库分表
8.Mycat
9.Telnet命令的使用
10.Restful
分布式技术-Tomcat容器01 | QiuRiMangCao
最新推荐文章于 2024-09-19 15:15:26 发布