Tomcat 服务器学习
一:tomcat架构图
在tomcat服务器中,只允许存在一个Server,一个Server可以有多个Service,一个Service中只允许有一个Engine,与配置文件Server.xml 对应
二:tomcat 配置文件
1:catalina.policy 安全策略配置文件
防止项目影响tomcat(服务器)安全影响,如删除文件,重启系统,需要对java代码进行安全权限控制。否则导致其他项目无法正常运行
2:catalina.properties , 服务器需要解决以下问题(jar包作用范围)
部署在同一个服务器上的不同项目的类应该相互隔离
部署在同一个服务器的的不同项目可以共享一些类(节约磁盘)
服务应该保证自己的安全,不受项目类库的影响
jsp应该支持热加载
其中,配置文件可以配置一下配置:
server.loader= 服务器专用jar路径
shared.loader= 项目之间共享 jar路径
common.loader = 服务器和项目共享jar 路径
3:全局的context配置文件
4:logging.properties
5:server.xml
tomcat组件配置
5.1 server组件 ,属性:port 关闭tomcat的端口号,shutdown:关闭命令 。针对整个tomcat
可以使用 telnet ip 端口 命令 链接到指定端口,输入命令
5.2 service (可以多个)
Executor 线程池:maxThreads
5.3 Connector 连接器(外部请求的入口),port:监听端口,protocol, 协议 http,ajp
redirectPort,收到 SSL传输请求,将转发至此端口
connectionTimeout, 每个请求的最长连接时间(请求响应时间)
5.4:Engine : 负责处理Service内的所有请求,负责处理多个connector请求
一个service 只有一个 Engine
name,defaultHost
5.5 Host 虚拟主机 (一个engine可以配置多个host)
name ='localhost'需要在hosts文件中配置 域名和ip的映射关系 ,appBase = 'webApp' ,存放项目的路径
upackWARs= "true",自动解压, autoDeploy:自动部署
5.6: Context 代表每个项目 ,一个host可以有多个context
path = "/hello":访问路径, docBase:项目的绝对路径 ,reloadable= "true" 重新加载(监控lib和classes变化,热部署), crossContext = "true" 表示同一个Host 内的项目共享session
6:tomcat-users.xml
tomcat-users.xsd
可以配置用户名,密码,角色;
访问tomcat初始页面点击manager,可以登录tomcat管理后台,管理tomcat上的项目
7:web.xml
项目中公共的配置
三: tomcat部署项目方式
1:将项目放在 webapps项目 (Host 中有默认定义)
2:登录tomcat后台管理(manager),直接上传war包发布deploy (最终也放在webapps)
3: 通过 server.xml中的 Context 部署,配置path,docBase等(需要重启tomcat服务)
4:在 conf下的Catalina文件夹的 虚拟 主机文件夹 下 新建 配置文件 a.xml ,只需添加 Context标签相关配置 (idea),无需重 启服务器