TOMCAT热部署
tomcat在运行时,新添加war包到webapps中,会自动解压,加载。
设置TOMCAT默认项目
vim conf/server.xml
<Context debug="0" docBase="project_path" path="" />
debug :debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息,这是tomcat日志调试信息,数越高,越详细。
docBase :设置默认项目根目录
path : 设置默认项目的虚拟目录,访问时的uri
AJP连接
Tomcat在默认情况下会启用AJP服务,它的默认端口为8009.
AJP(Apache JServer Protocol)
AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。
我们一般是使用Nginx+Tomcat的架构,所以用不着AJP协议,把AJP连接器禁用。
修改conf下的server.xml文件,将AJP服务禁用掉即可。
<!-- 禁用AJP连接 -->
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
重启Tomcat
原文链接:https://blog.csdn.net/ThinkWon/article/details/102744033
TOMCAT 内存调优
vim bin/catalina.sh
JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m"
-server :启用 JDK的 server 版本,默认为client版本
-Xms : 初始堆内存大小
-Xmx : 堆内存的最大值
-XX:PermSize=128m :持久带堆的初始大小
-XX:MaxPermSize=128m :持久带堆的最大大小
TOMCAT Connector连接器 优化
Tomcat 连接器的三种方式: bio、nio 和 apr
apr 的性能最优, bio 的性能最差。而 Tomcat 7 使用的 Connector 默认就启用的 Apr 协议,但需要系统安装 Apr 库,否则就会使用 bio 方式。
vim conf/servser.xml
<Connector port="8080"
protocol="HTTP/1.1"
maxThreads="1000"
minSpareThreads="100"
acceptCount="1000"
maxConnections="1000"
connectionTimeout="20000"
maxHttpHeaderSize="8192"
tcpNoDelay="true"
compression="on"
compressionMinSize="2048"
disableUploadTimeout="true"
redirectPort="8443"
enableLookups="false"
URIEncoding="UTF-8" />
port :Tomcat端口号,默认8080。
protocol :协议类型,可选类型有4种,BIO(阻塞型IO),NIO,NIO2和APR。
maxThreads:连接器创建处理请求线程的最大数目,处理同时请求的最大数目,默认值为200。
minSpareThreads:线程的最小运行数目,这些始终保持运行。如果未指定,默认值为10。
acceptCount:最大队列长度。一般与maxThreads相同,默认为100。
maxConnections:在任何给定的时间内,服务器将接受和处理的最大连接数。当这个数字已经达到时,服务器将接受但不处理,等待进一步连接。NIO与NIO2的默认值为10000,APR默认值为8192。
ConnectionTimeout:当请求已经被接受,但未被处理,也就是等待中的超时时间。单位为毫秒,默认值为60000。通常情况下设置为30000。
maxHttpHeaderSize:请求和响应的HTTP头的最大大小,以字节为单位指定。如果没有指定,这个属性被设置为8192(8 KB)。
tcpNoDelay:如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。
compression:是否启用gzip压缩,默认为关闭状态。这个参数的可接受值为“off”(不使用压缩),“on”(压缩文本数据),“force”(在所有的情况下强制压缩)。
compressionMinSize:如果compression="on",则启用此项。被压缩前数据的最小值,也就是超过这个值后才被压缩。如果没有指定,这个属性默认为“2048”(2K),单位为byte。
disableUploadTimeout:这个标志允许servlet Container在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上传的时候更长的超时时间。如果没有指定,设为false。
redirectPort:https协议默认端口号
enableLookups:关闭DNS反向查询。
URIEncoding:URL编码字符集。