对于使用tomcat来说,配置是必不可少的,也是使用tomcat的基础,更是以后进行tomcat相关优化的必要途径
tomcat的所有配置文件都在tomcat的conf目录下,有以下配置文件:
目录
一、每个配置文件的说明:
1. catalina.policy
包含由java Security Manager 实现的安全策略声明.它替换了安装java时带有的java.policy文件.这个文件用来防止欺骗代码或JSPs执行带有像System.exit(0)这样的命令的可能影响容器的破坏性代码. 只有当Tomcat用-security命令行参数启动时这个文件才会被使用.
2. catalina.properties包含不能被像 java.* 或 org.apache.tomcat.*这样的servlets或jsps中的可执行java代码覆盖的java包的列表,这种覆盖可能成为安全隐患.还支持查找通用jars的设置
3. context.xml
这个通用context.xml可被所有的web应用程序使用.这个文件默认地可以设置到何处访问各web应用程序中的web.xml文件.
4.jaspic-providers.xml
官方介绍: Tomcat实现了JASPIC 1.1维护版本B(JSR 196)。该实现主要用于实现第三方JASPIC身份验证实现与Tomcat的集成。 JASPIC可以由应用程序动态配置,也可以通过$CATALINA_BASE/conf/jaspic-providers.xml
配置文件静态配置。如果存在, JASPIC配置将覆盖任何 <login-config>
存在的web.xml
。
apache官方文档:http://tomcat.apache.org/tomcat-8.5-doc/config/jaspic.html
5. logging.properties
JULI记录器使用默认日志配置. 它默认地使用ConsoleHandler和fileHandler设置应用程序 或者程序包的日志级别.
6. sever.xmltomcat的主要配置文件. 解析器用这个文件在启动时根据规范"创建"容器
7. tomcat-users.xml用于访问tomcat管理应用程序时的安全性设置. 用server.xml中引用的默认的用户数据库域(UserDatabase Realm)使用它. 所有的凭据都是默认被注释的.
8.web.xml
它主要用来配置 Servlet、Filter 以及 Listener 等组件,以供 Web 容器(即 Tomcat)部署和执行 Web 应用。启动一个 Web 应用时,Tomcat 会首先读取它的 web.xml 配置文件
二、service.xml
配置文件的内容大致结构:
<Server port="8005" shutdown="SHUTDOWN"> <!--可包含一个或多个<Service>元素.-->
<Service name="Catalina"> <!--需要不同端口部署不同应用时可配置多个Service -->
<Connector>
.
.
.
<Engine> <!--每个Service元素只能包含一个Engine元素-->
...
<Host>
<!--tomcat日志文件的相关配置-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!--同一端口部署多个应用则复制多个Context-->
<Context path="" docBase="" debug="0" reloadable="true"/>
...
</Host>
</Engine>
</Service>
</Server>
使用tomcat部署项目时关于service.xml的配置:
- 配置Connector 。tomcat中的Connector:
<!--只要将8080改为自己需要的端口号即可,线上常配置为80,bio连接-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 引用线程池的连接,如果使用,需要配置线程池
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- 线程池配置
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="600" minSpareThreads="10"/>
-->
<!-- nio的连接方式
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
<!-- apr的连接方式
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
<!--ajp-->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
connector的常用参数:
prot :设定端口号,默认为8080.
protocol :设定HTTP协议,默认值为HTTP/1.1.
maxThreads:设定处理客户请求的线程的最大数目,,默认值为200.
acceptCount :设定在监听端口队列中的最大客户请求数,默认值为10. 如果队列已满,客户请求将被拒绝.
connectionTimeout :定义建立客户连接超时的时间,以毫秒为单位.如果设置为-1,表示不限制建立客户连接的时间.
更多connector的参数,参考官方文档:https://tomcat.apache.org/tomcat-8.0-doc/config/http.html
- 配置context
<Context path="" docBase="" debug="0" reloadable="true">
参数:
path :指定访问该Web应用的URL入口.
docBase :指定Web应用的文件路径.可以给定绝对路径,也可以给定相对于Host的appBase属性的相对路径. 如果Web应用采用开放目录结构,那就指定Web应用的根目录;如果Web应用是个WAR文件,那就指定WAR文件的路径.
reloadable :如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/class和WEB-INF/lib目录下CLASS文件的改动.如果检测到有calss文件被更新,服务器会自动重新加载Web应用.在<Context>元素中可以包含如下的子元素:
<Logger>
<Realm>
<Valve>
<Resource>
<ResourceParams>
引用来源: