Connector配置
Connector简介
Conf/server.xml配置文件中Connector配置定义了tomcat的链接的信息等。如下:
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
Http请求的处理端口默认为8080,当一个服务器中启动多个tomcat的时候会出现端口被占用的情况,那么这个端口就是要修改的其中一个。Http请求默认使用了HTTP/1.1协议处理,当然tomcat8.5以上版本都支持了最新的HTTP/2.0协议。
那么如果使用了HTTP/1.1协议,tomcat会自动检测当前服务器是否安装了APR。如果安装了,那么将使用APR处理HTTP请求(就是使用Http11AprProtocol类),否则使用NIO(tomcat7以及之前使用BIO)。当然,既然指定protocol属性为HTTP/1.1tomcat会检测使用对应的类来处理请求,那么我们也是可以直接指定请求处理类,不用tomcat去检测的。
<Connector port="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"/>
Connector其他属性介绍
MaxThreads
Tomcat是一款多线程Servlet容器,每个请求都会分配一个线程处理。那么maxThreads属性用于指定Connector创建的请求处理线程最大数目,如果请求超过该值,那么就需求等待。但是如果无限增大,会导致系统资源被占用严重,大大降低性能。
maxSpareThreads
tomcat允许的空闲线程的最大数目,如果空闲线程超过了该数量,将被回收。默认为50.
minSpareThreads
tomcat允许的空闲线程的最小数目,默认为4.
tcpNoDelay
如果为true,会启用Socket的TCP_NO_DELAY选项。将通过降低发送包的数量来提高网络效率,就是将小包集合为大包一次发送给客户端。
maxKeepAliveRequest
用于控制HTTP请求的“keep-alive”行为,用于启动持续链接。该属性指定HTTP链接在被服务器关闭之前处理的请求最大数目。Tomcat默认值为100,如果设置为1表示禁用该特性。因此,该属性会提升单个客户端的请求效率,尤其当一个Web包含多个HTTP请求时候,减少了新建链接的开销。但是会影响整体的吞吐量(如果链接持续时间过长,使得服务器达到最大链接数,其它请求只能排队等待)。
socketBuffer
指定Socket输出缓冲的大小,单位为字节。
enableLookups
设置为false,会禁用reqeust.getRemoteHost()方法的DNS查询,可以提示响应性能。