Tomcat 配置文件

Posted xiaozhebao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat 配置文件相关的知识,希望对你有一定的参考价值。

Tomcat目录结构:

 1 [root@gz01-tomcat-node01 ~]# ll /usr/local/tomcat/
 2 总用量 124
 3 drwxr-x---. 2 root root  4096 3月  28 01:09 bin
 4 -rw-r-----. 1 root root 19318 3月  11 18:06 BUILDING.txt
 5 drwx------. 3 root root   254 3月  28 01:12 conf
 6 -rw-r-----. 1 root root  5408 3月  11 18:06 CONTRIBUTING.md
 7 drwxr-x---. 2 root root  4096 3月  28 01:09 lib
 8 -rw-r-----. 1 root root 57011 3月  11 18:06 LICENSE
 9 drwxr-x---. 2 root root   197 3月  28 01:12 logs
10 -rw-r-----. 1 root root  1726 3月  11 18:06 NOTICE
11 -rw-r-----. 1 root root  3255 3月  11 18:06 README.md
12 -rw-r-----. 1 root root  7136 3月  11 18:06 RELEASE-NOTES
13 -rw-r-----. 1 root root 16262 3月  11 18:06 RUNNING.txt
14 drwxr-x---. 2 root root    30 3月  28 01:09 temp
15 drwxr-x---. 7 root root    81 3月  11 18:04 webapps
16 drwxr-x---. 3 root root    22 3月  28 01:12 work

/bin:脚本目录(启动关闭tomcat的脚本文件)

/lib:存放jar包

/conf:存放配置文件

/logs:存放日志文件

/temp: tomcat运行时候存放临时文件使用

/webapps:web应用发布目录

/work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。

 

 1 [root@gz01-tomcat-node01 conf]# ll
 2 总用量 224
 3 drwxr-x---. 3 root root     23 3月  28 01:12 Catalina
 4 -rw-------. 1 root root  13446 3月  11 18:06 catalina.policy 
 5 -rw-------. 1 root root   7661 3月  11 18:06 catalina.properties
 6 -rw-------. 1 root root   1338 3月  11 18:06 context.xml
 7 -rw-------. 1 root root   1149 3月  11 18:06 jaspic-providers.xml
 8 -rw-------. 1 root root   2313 3月  11 18:06 jaspic-providers.xsd
 9 -rw-------. 1 root root   3916 3月  11 18:06 logging.properties
10 -rw-------. 1 root root   7588 3月  11 18:06 server.xml    
11 -rw-------. 1 root root   2164 3月  11 18:06 tomcat-users.xml
12 -rw-------. 1 root root   2633 3月  11 18:06 tomcat-users.xsd
13 -rw-------. 1 root root 171756 3月  11 18:06 web.xml

server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;

web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;

tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户指定角色等将通过编辑此文件实现;

catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;

catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat6在启动时会事先读取此文件的相关设置;

logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息,可以用来定义日志记录的组件级别以及日志文件的存在位置等;

context.xml:所有host的默认配置信息;

Tomcat架构:

技术图片

 

Tomcat 它由一组嵌套的层次和组件组成,一般可分为以下四类:

顶级组件:位于配置层次的顶级,并且彼此间有着严格的对应关系;

连接器:连接客户端(可以是浏览器或Web服务器)请求至Servlet容器,

容器:包含一组其它组件;

被嵌套的组件:位于一个容器当中,但不能包含其它组件;

各常见组件:

1、服务器(server):Tomcat的一个实例,通常一个JVM只能包含一个Tomcat实例;因此,一台物理服务器上可以在启动多个JVM的情况下在每一个JVM中启动一个Tomcat实例,每个实例分属于一个独立的管理端口。这是一个顶级组件。

2、服务(service):一个服务组件通常包含一个引擎和与此引擎相关联的一个或多个连接器。给服务命名可以方便管理员在日志文件中识别不同服务产生的日志。一个server可以包含多个service组件,但通常情下只为一个service指派一个server。

连接器类组件:

3、连接器(connectors):负责连接客户端(可以是浏览器或Web服务器)请求至Servlet容器内的Web应用程序,通常指的是接收客户发来请求的位置及服务器端分配的端口。默认端口通常是HTTP协议的8080,管理员也可以根据自己的需要改变此端口。一个引擎可以配置多个连接器,但这些连接器必须使用不同的端口。默认的连接器是基于HTTP/1.1的Coyote。同时,Tomcat也支持AJP、JServ和JK2连接器。

容器类组件:

4、引擎(Engine):引擎通是指处理请求的Servlet引擎组件,即Catalina Servlet引擎,它检查每一个请求的HTTP首部信息以辨别此请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端。严格意义上来说,容器不必非得通过引擎来实现,它也可以是只是一个容器。如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。一个引擎可以包含多个host组件。

5、主机(Host):主机组件类似于Apache中的虚拟主机,但在Tomcat中只支持基于FQDN的“虚拟主机”。一个引擎至少要包含一个主机组件。

6、上下文(Context):Context组件是最内层次的组件,它表示Web应用程序本身。配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器能够将用户请求发往正确的位置。Context组件也可包含自定义的错误页,以实现在用户访问发生错误时提供友好的提示信息。

被嵌套类(nested)组件:

这类组件通常包含于容器类组件中以提供具有管理功能的服务,它们不能包含其它组件,但有些却可以由不同层次的容器各自配置。

7、阀门(Valve):用来拦截请求并在将其转至目标之前进行某种处理操作,类似于Servlet规范中定义的过滤器。Valve可以定义在任何容器类的组件中。Valve常被用来记录客户端请求、客户端IP地址和服务器等信息,这种处理技术通常被称作请求转储(request dumping)。请求转储valve记录请求客户端请求数据包中的HTTP首部信息和cookie信息文件中,响应转储valve则记录响应数据包首部信息和cookie信息至文件中。

8、日志记录器(Logger):用于记录组件内部的状态信息,可被用于除Context之外的任何容器中。日志记录的功能可被继承,因此,一个引擎级别的Logger将会记录引擎内部所有组件相关的信息,除非某内部组件定义了自己的Logger组件。

9、领域(Realm):用于用户的认证和授权;在配置一个应用程序时,管理员可以为每个资源或资源组定义角色及权限,而这些访问控制功能的生效需要通过Realm来实现。Realm的认证可以基于文本文件、数据库表、LDAP服务等来实现。Realm的效用会遍及整个引擎或顶级容器,因此,一个容器内的所有应用程序将共享用户资源。同时,Realm可以被其所在组件的子组件继承,也可以被子组件中定义的Realm所覆盖。

server.xml:

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Server port="8005" shutdown="SHUTDOWN">
 3   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 4   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 5   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 6   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 7   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 8   <GlobalNamingResources>
 9     <Resource name="UserDatabase" auth="Container"
10               type="org.apache.catalina.UserDatabase"
11               description="User database that can be updated and saved"
12               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
13               pathname="conf/tomcat-users.xml" />
14   </GlobalNamingResources>
15   <Service name="Catalina">
16     <Connector port="8080" protocol="HTTP/1.1"
17                connectionTimeout="20000"
18                redirectPort="8443" />
19     <Engine name="Catalina" defaultHost="localhost">
20       <Realm className="org.apache.catalina.realm.LockOutRealm">
21         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
22                resourceName="UserDatabase"/>
23       </Realm>
24 
25       <Host name="localhost"  appBase="webapps"
26             unpackWARs="true" autoDeploy="true">
27         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
28                prefix="localhost_access_log" suffix=".txt"
29                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
30       </Host>
31     </Engine>
32   </Service>
33 </Server>

 

以上是关于Tomcat 配置文件的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VS Code配置markdown代码片段

VS Code配置markdown代码片段

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率