企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# tomcat目录和配置介绍 [TOC] ## 一、Tomcat目录介绍 1.主目录介绍 ```SH tree -L 1 /app/tomcat/ ``` ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200306/105102604.png) 2.webapps目录 ```SH tree /app/tomcat/webapps/ -L 1 ``` ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200306/105112790.png) 说明:生产环境中,为了安全考虑,只保留root目录,其他都要删掉 3.Tomcat管理功能 > 此功能仅测试环境熟悉软件可用,生产环境千万不要用。 Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。默认禁用状态。如需开启,需要配置管理用户,文件为tomcat-users.xml。 ``` vim /app/tomcat/conf/tomcat-users.xml ………… <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/> </tomcat-users> #→在此行前加入上面三行 /app/tomcat/bin/shutdown.sh /app/tomcat/bin/startup.sh ``` 然后登陆网页,点击下图三个按钮可以分别进入不同的管理界面 ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200306/105124052.png) ## 二、Tomcat日志 1.日志位置 ``` tree /app/tomcat/logs/ ``` ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200306/105131871.png) 2.日志说明 * 实时日志 catalina.out日志是tomcat的实时运行日志,文件会越来越大,需要定时清理 catalina.时间.log是每天自动进行日志切割后的文件 * 站点日志 每个站点运行都会写入到站点日志中 ## 三、Tomcat配置文件 ### 1.Tomcat配置文件 ``` tree -L 1 /app/tomcat/conf ``` ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200306/105139551.png) ### 2.配置文件结构 1)server.xml组件类别 * 顶级组件: 位于整个配置的顶层,如server。 * 容器类组件: 可以包含其它组件的组件,如service、engine、host、context。 * 连接器组件: 连接用户请求至tomcat,如connector。 * 被嵌套类组件:位于一个容器当中,不能包含其他组件,如Valve、logger。 2)配置文件模板 ```sh <server> <service> <connector /> <engine> <host> <context></context> </host> <host> <context></context> </host> </engine> </service> </server> ``` ### 3.组件详解 * engine: 核心容器组件,catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host。 * host: 类似于httpd中的虚拟主机,一般而言支持基于FQDN的虚拟主机。 * context: 定义一个应用程序,是一个最内层的容器类组件(不能再嵌套)。配置context的主要目的指定对应对的webapp的根目录,类似于httpd的alias,其还能为webapp指定额外的属性,如部署方式等。 * connector: 接收用户请求,类似于httpd的listen配置监听端口的。 * service: 将connector关联至engine,因此一个service内部可以有多个connector,但只能有一个引擎engine。service内部有两个connector,一个engine。因此,一般情况下一个server内部只有一个service,一个service内部只有一个engine,但一个service内部可以有多个connector。 * server: 表示一个运行于JVM中的tomcat实例。 * Valve: 阀门,拦截请求并在将其转至对应的webapp前进行某种处理操作,可以用于任何容器中,比如记录日志(access log valve)、基于IP做访问控制(remote address filter valve)。 * logger: 日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中。 * realm: 可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权。可以关联的认证库有两种:UserDatabaseRealm、MemoryRealm和JDBCRealm。 * UserDatabaseRealm: 使用JNDI自定义的用户认证库。 * MemoryRealm: 认证信息定义在tomcat-users.xml中。 * JDBCRealm: 认证信息定义在数据库中,并通过JDBC连接至数据库中查找认证用户。