介绍

HTTP连接器元素表示支持HTTP / 1.1协议的连接器组件。 除了能够执行servlet和JSP页面之外,它还使Catalina能够作为独立的Web服务器。 此组件的特定实例侦听服务器上特定TCP端口号上的连接。 一个或多个这种连接器可以被配置为单个的一部分服务 ,每一个转发到相关联的引擎来执行请求处理,并创建响应。

如果你想配置使用使用AJP协议(如对Web服务器的连接连接器 mod_jk 1.2.x的Apache 1.3连接器),请参阅AJP连接器文档。

每个传入请求在该请求的持续时间需要一个线程。 如果不是可以通过当前可用的请求处理线程来处理接收到更多的并发请求,额外的线程将被创建到配置的最大(该值maxThreads属性)。 如果接收到更同时提出请求,他们是由连接器创建的服务器插槽内叠起来,到配置的最大(该值acceptCount属性)。 任何其他同时发生的请求将接收“连接被拒绝”错误,直到有资源可用于处理它们。

属性
公共属性

连接器的所有实现支持以下属性:

属性 描述
allowTrace

一个布尔值,可用于启用或禁用TRACE HTTP方法。 如果未指定,则此属性设置为false。

asyncTimeout

异步请求的默认超时(以毫秒为单位)。 如果未指定,则此属性设置为10000(10秒)。

enableLookups

设置为true ,如果你想调用request.getRemoteHost()以便返回远程客户的实际主机名执行DNS查找。 设置为false跳过DNS查找并返回String形式的IP地址,而不是(从而提高性能)。 默认情况下,禁用DNS查找。

maxHeaderCount

容器允许的请求中的标头数量上限。 包含超过指定限制的标头的请求将被拒绝。 小于0的值表示没有限制。 如果未指定,则使用默认值100。

maxParameterCount

将由容器自动解析的参数和值对(GET plus POST)的最大数量。 超出此限制的参数和值对将被忽略。 小于0的值表示没有限制。 如果未指定,则使用缺省值10000。 需要注意的是FailedRequestFilter 滤波器可以被用来拒绝撞到限位请求。

maxPostSize

POST的最大大小(以字节为单位),将由容器FORM URL参数解析处理。 可以通过将此属性设置为小于零的值来禁用该限制。 如果未指定,则此属性将设置为2097152(2兆字节)。 请注意, FailedRequestFilter可以用来拒绝超过此限制的请求。

maxSavePostSize

在FORM或CLIENT-CERT身份验证期间将由容器保存/缓冲的POST的最大大小(以字节为单位)。 对于这两种类型的认证,POST将在用户被认证之前被保存/缓冲。 对于CLIENT-CERT认证,POST在SSL握手期间进行缓冲,并且在处理请求时缓冲区清空。 对于FORM认证,保存POST,而用户被重定向到登录表单并保留,直到用户成功认证或与认证请求相关联的会话过期。 可以通过将此属性设置为-1来禁用该限制。 将属性设置为零将禁用在身份验证期间保存POST数据。 如果未指定,则此属性设置为4096(4千字节)。

parseBodyMethods

以逗号分隔的HTTP方法列表,请求主体将按照与POST相同的请求参数进行解析。 这在需要支持PUT请求的POST样式语义的RESTful应用程序中非常有用。 需要注意的是比任何其他设置POST引起Tomcat能够在违背Servlet规范的意图,行为方式。 HTTP方法TRACE在这里是特别禁止的,根据HTTP规范。 默认值是POST

port

在此连接器将创建一个服务器套接字和TCP端口号等待传入连接。 您的操作系统将只允许一个服务器应用程序侦听特定IP地址上的特定端口号。 如果使用特殊值0(零),则Tomcat将随机选择一个空闲端口用于此连接器。 这通常只在嵌入式和测试应用程序中有用。

protocol

设置处理传入流量的协议。 默认值是HTTP/1.1 ,它使用一种自动切换机构以选择一个阻断基于Java的连接器或APR /基于本地连接器。 如果PATH (Windows)或LD_LIBRARY_PATH (在大多数Unix系统)环境变量包含Tomcat的机库中,APR /本地连接器将被使用。 如果无法找到本机库,将使用基于阻塞的Java连接器。 请注意,APR /本机连接器具有与Java连接器不同的HTTPS设置。 
为了使用显式协议而不是依赖于上述自动切换机制,可以使用以下值: 
org.apache.coyote.http11.Http11Protocol -阻止Java连接 
org.apache.coyote.http11.Http11NioProtocol -非阻塞的Java接口 
org.apache.coyote.http11.Http11AprProtocol -年利率/本地连接器。 
也可以使用定制实现。 
看看我们的连接器比较图。 两个Java连接器的配置是相同的,对于http和https。 
对于APR连接器和APR特定SSL设置的更多信息,请访问APR文档

proxyName

如果此连接在一个代理配置中使用,配置该属性指定的调用将返回服务器名称request.getServerName() 代理支持以获取更多信息。

proxyPort

如果此连接在一个代理配置中使用,配置该属性指定的调用将返回的服务器端口request.getServerPort() 代理支持以获取更多信息。

redirectPort

如果该连接器支持非SSL请求,并接收到一个请求为其匹配的<security-constraint>需要SSL传输,卡特琳娜将自动重定向请求到这里指定的端口号。

scheme

该属性设置为您希望通过调用返回给协议的名称request.getScheme() 例如,您可以将此属性设置为“ https ”为SSL连接器。 默认值是“ http ”。

secure

将此属性设置为true ,如果您希望将呼叫request.isSecure()返回true由该连接器接收到的请求。 您可能希望在SSL连接器或从SSL加速器接收数据的非SSL连接器(如加密卡,SSL设备或甚至是Web服务器)上使用。 默认值是false 。

URIEncoding

这指定在%xx解码URL之后用于解码URI字节的字符编码。 如果未指定,将使用ISO-8859-1。

useBodyEncodingForURI

这指定contentType中指定的编码是否应用于URI查询参数,而不是使用URIEncoding。 此设置用于与Tomcat 4.1.x兼容,其中contentType中指定的编码或使用Request.setCharacterEncoding方法显式设置的编码也用于来自URL的参数。 默认值是false 。

注:1)此设置仅应用于一个请求的查询串。 不像URIEncoding它不会影响的请求URI的路径部分。 2)如果请求的字符编码未知的(不是由浏览器提供的,并且不通过设置SetCharacterEncodingFilter或使用Request.setCharacterEncoding方法类似的过滤器),默认的编码总是“ISO-8859-1”。 URIEncoding设置对这个默认没有影响。

useIPVHosts

将此属性设置为true引起Tomcat使用该请求被接收,以确定主机的请求发送到IP地址。 默认值是false 。

xpoweredBy

将此属性设置为true引起Tomcat能够为广告使用规范推荐的头Servlet规范的支持。 默认值是false 。

标准执行

除了上面列出的常见Connector属性,标准HTTP连接器(BIO,NIO和APR / native)都支持以下属性。

属性 描述
acceptCount

当所有可能的请求处理线程正在使用时,传入连接请求的最大队列长度。 队列已满时收到的任何请求将被拒绝。 默认值为100。

acceptorThreadCount

用于接受连接的线程数。 增加了多CPU的机器上这个值,虽然你永远不会真正需要超过2 。 此外,有很多非保持活动连接,你可能想增加这个值。 默认值是1 。

acceptorThreadPriority

接受者线程的优先级。 用于接受新连接的线程。 默认值是5 (该值java.lang.Thread.NORM_PRIORITY常数)。 请参阅的JavaDoc java.lang.Thread类上这是什么意思优先的更多详细信息。

address

对于具有多个IP地址的服务器,此属性指定将用于侦听指定端口的地址。 默认情况下,此端口将用于与服务器关联的所有IP地址。

allowedTrailerHeaders

默认情况下,Tomcat在处理分块输入时将忽略所有的尾部头。 对于要处理的标头,必须将其添加到此逗号分隔的标头名称列表中。

bindOnInit

控制连接器使用的套接字何时绑定。 默认情况下,在连接器启动时绑定,并在连接器销毁时解除绑定。 如果设置为false ,插座会当连接器开始,当它停止势必绑定。

compressableMimeType

该值是可以使用HTTP压缩的MIME类型的逗号分隔列表。 默认值是text/html,text/xml,text/plain,text/css,text/javascript,application/javascript 。

compression

连接器可能在试图节省服务器的带宽使用HTTP / 1.1 GZIP压缩。 参数的可接受值为“off”(禁用压缩),“on”(允许压缩,这导致文本数据被压缩),“force”(在所有情况下强制压缩)或数值整数值等效于“on”,但指定在压缩输出之前的最小数据量)。 如果内容长度未知并且压缩设置为“开”或更积极,则输出也将被压缩。 如果未指定,则此属性设置为“off”。

注意 :有使用压缩(保存您的带宽),并使用发送文件功能(保存CPU周期)之间的权衡。 如果连接器支持sendfile功能,例如NIO连接器,则使用sendfile将优先于压缩。 症状将是大于48 Kb的静态文件将被解压缩发送。 您可以通过设置发送文件关闭useSendfile连接器的属性,如下面介绍,或更改的配置发送文件使用阈值DefaultServlet在默认conf/web.xmlweb.xml的Web应用程序。

compressionMinSize

如果压缩被设定为“on”,那么此属性可被使用的输出被压缩之前指定的最小数据量。 如果未指定,则此属性默认为“2048”。

connectionLinger

在此期间,当他们关闭此连接器使用的插座会流连忘返的秒数。 默认值是-1将禁用插座流连忘返。

connectionTimeout

毫秒数接口等,接受连接,该请求将提交的URI行之后。 使用值-1表示没有(即无限)超时。 默认值为60000(即60秒),但请注意Tomcat附带的标准server.xml将此值设置为20000(即20秒)。 除非disableUploadTimeout设置为false ,超时也将读取请求体(如果有的话)时使用。

connectionUploadTimeout

指定在数据上传正在进行时使用的超时(以毫秒为单位)。 如果disableUploadTimeout设置为这只生效false 。

disableUploadTimeout

此标志允许servlet容器在数据上传期间使用不同的,通常较长的连接超时。 如果没有指定,这个属性被设置为true来取消这个更长的超时。

executor

在A引用名执行官元素。 如果设置了此属性,并且命名的executor存在,连接器将使用执行程序,并且将忽略所有其他线程属性。 注意,如果没有为连接器指定共享的执行器,那么连接器将使用私有的内部执行器来提供线程池。

executorTerminationTimeoutMillis

在继续停止连接器的进程之前,私有内部执行程序将等待请求处理线程终止的时间。 如果没有设置,默认为0 (零)BIO连接器和5000的NIO和APR /本地连接器(5秒)。

keepAliveTimeout

毫秒数此连接器将等待另一个HTTP请求关闭连接之前。 缺省值是使用已被设定为为ConnectionTimeout属性的值。 使用值-1表示没有(即无限)超时。

maxConnections

服务器将在任何给定时间接受和处理的最大连接数。 当达到此数目时,服务器将接受另一个连接,但不处理。 这个附加的连接被阻止,直到被处理下降到低于MAXCONNECTIONS在该点服务器将开始接受并再次处理新的连接的连接数。 注意,一旦已经达到极限,操作系统仍可能接受基于所述连接acceptCount设置。 默认值因连接器类型而异。 生物默认为maxThreads的价值,除非遗嘱执行人在这种情况下,默认将从执行人maxThreads的值使用。 对于NIO的默认值是10000 。 对于APR /本地,默认为8192 。

请注意,对于Windows上的APR / native,配置的值将减少到小于或等于maxConnections的1024的最大倍数。 这是出于性能原因。 
如果设置为值-1,则将禁用maxConnections功能,并且不会计数连接。

maxCookieCount

请求所允许的最大Cookie数。 小于零的值表示没有限制。 如果未指定,将使用默认值200。

maxExtensionSize

限制分块HTTP请求中块扩展的总长度。 如果该值为-1 ,没有限制将被罚款。 如果未指定,默认值8192将被使用。

maxHttpHeaderSize

请求和响应HTTP头的最大大小,以字节指定。 如果未指定,则此属性设置为8192(8 KB)。

maxKeepAliveRequests

在服务器关闭连接之前可以流水线传输的HTTP请求的最大数量。 将此属性设置为1将禁用HTTP / 1.0保持活动,以及HTTP / 1.1保持活动和流水线。 将此值设置为-1将允许无限量的流水线或保持活动的HTTP请求。 如果未指定,则此属性设置为100。

maxSwallowSize

Tomcat为中止上传而吞入的请求主体字节数(不包括传输编码开销)的最大数。 中止上传是Tomcat知道请求正文将被忽略,但客户端仍然发送它。 如果Tomcat不吞咽身体,客户端不太可能看到响应。 如果未指定,将使用默认值2097152(2兆字节)。 小于零的值表示不应强制实施限制。

maxThreads

由该连接器 ,它因此确定可处理的同时请求的最大数目被创建的请求处理线程的最大数量。 如果未指定,则此属性将设置为200.如果执行程序与此连接器相关联,则会忽略此属性,因为连接器将使用执行程序而不是内部线程池执行任务。 请注意,如果配置了执行人该属性设置的任何值将被正确地记录下来,但将报告(例如,通过JMX)为-1明确指出,不使用它。

maxTrailerSize

限制分块HTTP请求的最后一个块中尾随标题的总长度。 如果该值为-1 ,没有限制将被罚款。 如果未指定,默认值8192将被使用。

minSpareThreads

始终保持运行的最小线程数。 如果未指定,默认10被使用。 如果执行器与此连接器相关联,则忽略此属性,因为连接器将使用执行程序而不是内部线程池执行任务。 请注意,如果配置了执行人该属性设置的任何值将被正确地记录下来,但将报告(例如,通过JMX)为-1明确指出,不使用它。

noCompressionUserAgents

值是(使用正则表达式java.util.regex )相匹配的user-agent不应该用于该压缩的HTTP客户端的报头,因为这些客户端,虽然他们做广告的特征的支持,有破实现。 默认值为空字符串(禁用regexp匹配)。

processorCache

协议处理程序缓存Processor对象以加速性能。 此设置指示这些对象中的多少个被缓存。 -1表示无限制,默认为200 。 如果不使用Servlet 3.0异步处理,一个好的默认是使用与maxThreads设置相同。 如果使用Servlet 3.0异步处理,一个好的默认是使用更大的maxThreads和预期的并发请求(同步和异步)的最大数量。

restrictedUserAgents

值是(使用正则表达式java.util.regex )相匹配的user-agent的量的HTTP / 1.1或HTTP HTTP客户端的头/ 1.0保持活动不应使用,即使客户端广告支持这些特性。 默认值为空字符串(禁用regexp匹配)。

server

覆盖http响应的服务器标头。 如果设置,此属性的值将覆盖由Web应用程序设置的Tomcat默认值和任何服务器标头。 如果未设置,则使用应用程序指定的任何值。 如果应用程序没有指定值,那么Apache-Coyote/1.1使用。 除非你是偏执狂的,你不需要这个功能。

socketBuffer

要为套接字输出缓冲提供的缓冲区的大小(以字节为单位)。 -1可以指定禁用缓冲区的使用。 默认情况下,将使用9000字节的缓冲区。

SSLEnabled

使用此属性可在连接器上启用SSL流量。 要打开SSL握手/加密/解密这个值设置为一个连接器上true 。 默认值是false 。 当把这个值true你将要设置schemesecure属性,以及通过正确的request.getScheme()request.isSecure()值的servlet的见SSL支持以获取更多信息。

tcpNoDelay

如果设置为true ,则TCP_NO_DELAY选项将服务器套接字,从而提高了在大多数情况下的性能进行设置。 这是设置为true默认。

threadPriority

JVM中请求处理线程的优先级。 默认值是5 (该值java.lang.Thread.NORM_PRIORITY常数)。 请参阅的JavaDoc java.lang.Thread类上这是什么意思优先的更多详细信息。 如果执行器与此连接器相关联,则忽略此属性,因为连接器将使用执行程序而不是内部线程池执行任务。 请注意,如果配置了执行人该属性设置的任何值将被正确地记录下来,但将报告(例如,通过JMX)为-1明确指出,不使用它。

upgradeAsyncWriteBufferSize

分配给异步写入的缓冲区的缺省大小,无法在单个操作中完成,以字节为单位。 不能立即写入的数据将存储在此缓冲区中,直到可以写入。 如果在缓冲器中存在比空间可用的更多的数据,则在写入的持续时间中将增加缓冲器的大小。 如果未指定,将使用默认值8192。

Java TCP套接字属性

除了上面列出的公共连接器和HTTP属性之外,BIO和NIO实现还支持以下Java TCP套接字属性。

属性 描述
socket.rxBufSize

(int)套接字接收缓冲区(SO_RCVBUF)大小(字节)。 如果未设置,则使用JVM默认值。

socket.txBufSize

(int)套接字发送缓冲区(SO_SNDBUF)大小(字节)。 如果未设置,则使用JVM默认值。

socket.tcpNoDelay

(布尔)这相当于标准属性tcpNoDelay。

socket.soKeepAlive

(bool)套接字保持活动设置(SO_KEEPALIVE)的布尔值。 如果未设置,则使用JVM默认值。

socket.ooBInline

(bool)套接字OOBINLINE设置的布尔值。 如果未设置,则使用JVM默认值。

socket.soReuseAddress

(bool)套接字重用地址选项(SO_REUSEADDR)的布尔值。 如果未设置,则使用JVM默认值。

socket.soLingerOn

(bool)sockets的布尔值so linger选项(SO_LINGER)。 一种标准属性connectionLinger即> = 0就相当于这个设置值true 。 一种标准属性connectionLinger是<0的值等同于将其设置为false 。 既此属性和soLingerTime必须设置别的JVM的默认值将被用于两者。

socket.soLingerTime

(int)套接字的值(以秒为单位),因此选项(SO_LINGER)。 这相当于标准属性connectionLinger。 既此属性和soLingerOn必须设置别的JVM的默认值将被用于两者。

socket.soTimeout

这相当于标准属性connectionTimeout。

socket.performanceConnectionTime

(int)性能设置的第一个值。 插槽性能选项 。 必须设置所有三个性能属性,否则JVM默认值将用于所有三个。

socket.performanceLatency

(int)性能设置的第二个值。 插槽性能选项 。 必须设置所有三个性能属性,否则JVM默认值将用于所有三个。

socket.performanceBandwidth

(int)性能设置的第三个值。 插槽性能选项 。 必须设置所有三个性能属性,否则JVM默认值将用于所有三个。

socket.unlockTimeout

(int)套接字解锁的超时时间。 当连接器停止时,它将尝试通过打开连接器自身来释放接受器线。 默认值是250并且该值以毫秒为单位

BIO特定配置

以下属性特定于BIO连接器。

属性 描述
disableKeepAlivePercentage

在禁用HTTP保活活动以提高可伸缩性之前必须使用的处理线程的百分比。 值小于0将被更改为0和值大于100将被改变为100 。 如果没有指定,默认值是75

NIO具体配置

以下属性特定于NIO连接器。

属性 描述
pollerThreadCount

(int)要用于轮询事件的线程数。 默认值为1每个处理器直至并包括版本7.0.27。 缺省值作为7.0.28版是1 ,每个处理器,但不超过2个。 
当接受套接字时,操作系统持有全局锁。 因此,走上2个线程的好处迅速减少。 拥有多个线程对于需要非常快速地接受连接的系统。 但通常只是增加acceptCount将解决这个问题。 当大量的发送文件操作正在进行时,增加该值也可能是有益的。

pollerThreadPriority

(int)轮询器线程的优先级。 默认值是5 (该值java.lang.Thread.NORM_PRIORITY常数)。 请参阅的JavaDoc java.lang.Thread类上这是什么意思优先的更多详细信息。

selectorTimeout

(int)轮询器的select()超时的时间(以毫秒为单位)。 此值很重要,因为连接清理在同一线程上完成,因此不要将此值设置为非常高。 缺省值是1000毫秒。

useComet

(bool)是否允许彗星servlet。 默认值是true 。

useSendfile

(bool)使用此属性可以启用或禁用sendfile功能。 默认值是true 。

socket.directBuffer

(bool)布尔值,是否使用直接ByteBuffers或java映射的ByteBuffers。 如果true那么java.nio.ByteBuffer.allocateDirect()被使用,如果分配缓冲区, falsejava.nio.ByteBuffer.allocate()被使用。 默认值是false 。 
当使用直接缓冲区时,请确保为直接内存空间分配适当的内存量。 在Sun的JDK,这将是类似于-XX:MaxDirectMemorySize=256m 。

socket.appReadBufSize

(int)在Tomcat中打开的每个连接都与读取的ByteBuffer相关联。 此属性控制此缓冲区的大小。 默认情况下该读缓冲区以大小8192字节。 对于较低的并发性,可以增加此值以缓冲更多数据。 对于极端数量的保持连接,请减少此数字或增加堆大小。

socket.appWriteBufSize

(int)在Tomcat中打开的每个连接都与写入ByteBuffer相关联。 此属性控制此缓冲区的大小。 默认情况下此写缓存大小为8192字节。 对于低并发性,可以增加此值以缓冲更多响应数据。 对于极端数量的保持连接,请减少此数字或增加堆大小。 
这里的默认值非常低,如果你不处理成千上万的并发连接,你应该升级它。

socket.bufferPool

(int)NIO连接器使用一个名为NioChannel的类,它保存链接到套接字的元素。 为了减少垃圾回收,NIO连接器缓存这些通道对象。 此值指定此高速缓存的大小。 默认值是500 ,代表高速缓存将举行500 NioChannel对象。 其他值-1无限缓存和0无缓存。

socket.bufferPoolSize

(int)NioChannel池也可以基于大小,不使用基于对象。 大小计算如下: 
NioChannel buffer size = read buffer size + write buffer size 
SecureNioChannel buffer size = application read buffer size + application write buffer size + network read buffer size + network write buffer size 
该值以字节为单位,默认值是1024*1024*100 (100MB)。

socket.processorCache

(int)Tomcat将缓存SocketProcessor对象以减少垃圾回收。 整数值指定最多要在缓存中保留的对象数。 默认值是500 。 其他值-1无限缓存和0无缓存。

socket.keyCache

(int)Tomcat将缓存KeyAttachment对象以减少垃圾回收。 整数值指定最多要在缓存中保留的对象数。 默认值是500 。 其他值-1无限缓存和0无缓存。

socket.eventCache

(int)Tomcat将缓存PollerEvent对象以减少垃圾回收。 整数值指定最多保留在缓存中的对象数。 默认值是500 。 其他值-1无限缓存和0无缓存。

selectorPool.maxSelectors

(int)要在池中使用的最大选择器,以减少选择器争用。 当命令行使用此选项org.apache.tomcat.util.net.NioSelectorShared值设置为false。 默认值是200 。

selectorPool.maxSpareSelectors

(int)要在池中使用的最大备用选择器,以减少选择器争用。 当选择器返回到池中时,系统可以决定保留它或让它被GC\’d。 当命令行使用此选项org.apache.tomcat.util.net.NioSelectorShared值设置为false。 默认值为-1 (无限制)。

command-line-options

以下命令行选项可用于NIO连接器: 
-Dorg.apache.tomcat.util.net.NioSelectorShared=true|false -默认为true 。 将该值设置为false ,如果你想使用一个选择器为每个线程。 当你将它设置为false ,你可以通过使用属性selectorPool.maxSelectors控制选择的池的大小。

oomParachute

(int)NIO连接器实现一个称为parachute的OutOfMemoryError策略。 它拥有一个数据块作为一个字节数组。 在OOM的情况下,该组块的数据被释放并且报告错误。 这将给VM有足够的空间来清理。 oomParachute代表降落伞(字节数组)的字节数。 默认值是1024*1024 (1MB)。 请注意,这只适用于关于Java堆空间的OOM错误,并且绝对不能保证您将能够恢复。 如果你有一个OOM在Java堆以外,那么这个降落伞把戏将没有帮助。

APR /本机特定配置

以下属性特定于APR /本机连接器。

属性 描述
deferAccept

设置TCP_DEFER_ACCEPT此连接器监听套接字上的标志。 默认值是true ,其中TCP_DEFER_ACCEPT是由操作系统支持,否则是false 。

pollerSize

负责轮询保持活动连接的轮询器在给定时间可以保持的套接字的数量。 额外的连接将立即关闭。 默认值为8192,对应于8192个保活连接。 这是maxConnections的同义词。

pollTime

轮询呼叫的持续时间(以微秒为单位)。 降低此值将稍微减少连接在某些情况下保持活动的延迟,但随着更多的轮询调用,将使用更多的CPU。 默认值为2000(2ms)。

sendfileSize

负责在特定时间异步发送静态文件的轮询器的套接字数量。 额外的连接将立即关闭,而不发送任何数据(导致客户端一个长度为零的文件)。 注意,在大多数情况下,sendfile是一个将立即返回的调用(由内核“同步”处理),并且不使用sendfile轮询器,因此可以并发发送的静态文件的数量很多大于规定量。 默认值为1024。

threadPriority

(int)接收方和轮询线程的优先级。 默认值是5 (该值java.lang.Thread.NORM_PRIORITY常数)。 请参阅的JavaDoc java.lang.Thread类上这是什么意思优先的更多详细信息。

useComet

(bool)是否允许彗星servlet。 默认值是true 。

useSendfile

(bool)使用此属性可以启用或禁用sendfile功能。 默认值是true 。

嵌套组件

没有在这个时候。

特殊功能
HTTP / 1.1和HTTP / 1.0支持

接口支持所有的HTTP / 1.1协议所需的功能,如在RFC 2616中描述,包括持久连接,流水线,期望和分块编码。 如果客户端(通常是浏览器)只支持HTTP / 1.0, 连接器将正常回落到支持该协议为好。 无需特殊配置即可启用此支持。 连接器还支持HTTP / 1.0的保活。

RFC 2616要求HTTP服务器始终以他们声称支持的最高HTTP版本开始其响应。 因此,该连接器将始终返回HTTP/1.1在其反应的开始。

代理支持

proxyNameproxyPort当Tomcat在代理服务器中运行,可以使用的属性。 这些属性修改返回到调用该web应用程序的值request.getServerName()request.getServerPort()方法,这往往是用于构造绝对网址重定向。 如果不配置这些属性,返回的值将反映从代理服务器接收到连接的服务器名称和端口,而不是客户端指向原始请求的服务器名称和端口。

欲了解更多信息,请参阅代理支持HOW-TO 。

SSL支持

您可以通过设置启用此连接器的特定实例的SSL支持SSLEnabled属性为true 。

您还需要设置schemesecure属性值httpstrue分别,传递正确的信息给的servlet。

BIO和NIO连接器使用JSSE SSL,而APR /本机连接器使用OpenSSL。 因此,除了使用不同的属性来配置SSL之外,APR /本地连接器还需要以不同格式提供密钥和证书。

欲了解更多信息,请参见SSL配置HOW-TO 。

SSL支持 – BIO和NIO

BIO和NIO连接器使用以下属性配置SSL:

属性 描述
algorithm

要使用的证书编码算法。 默认为KeyManagerFactory.getDefaultAlgorithm()返回SunX509为的Sun JVM。 IBM的JVM返回IbmX509 。 对于其他供应商,请参阅JVM文档中的默认值。

allowUnsafeLegacyRenegotiation

是否允许不安全的传统TLS重新协商,这可能会使用户暴露于CVE-2009-3555,这是TLS协议中的中间人漏洞,允许攻击者将任意数据插入用户的请求。 如果没有指定,默认设置false时使用。 此属性仅在JVM不支持RFC 5746的情况下有效,如伪加密组件TLS_EMPTY_RENEGOTIATION_INFO_SCSV的存在所指示的。 这是可用的JRE / JDK 6更新22以后。 在支持RFC 5746的情况下,重新协商 – 包括对不安全的旧版重新协商的支持 – 由JVM配置控制。

useServerCipherSuitesOrder

设置为true执行服务器的密码顺序(从ciphers设置)。 设置为false来选择由客户提出的第一个可以接受的密码套件。 使用此功能需要Java 8或更高版本。 默认是不明确的,留下的选择到JSSE实现。

ciphers

以逗号分隔的加密密码列表,以支持HTTPS连接。 如果指定,将仅使用SSL实现列出和支持的密码。 默认情况下,JVM的默认密码将少于那些被认为不安全的密码。 请注意,对于较旧的JVM,这将导致一组非常有限的密码缺省可用。 密码使用JSSE密码命名约定来指定。 的特殊值ALL将启用所有支持的密码。 这将包括许多不安全。 ALL仅用于测试目的。

clientAuth

设置为true ,如果你想在SSL协议栈需要从客户端的有效证书链接受连接之前。 设置为want ,如果你想的SSL栈请求客户端证书,但如果一个人没有出现不能失败。 一个false ,除非客户端请求由使用安全约束保护的资源的价值(这是默认值)将不需要证书链CLIENT-CERT认证。

clientCertProvider

当客户端证书信息以比其他实例形式java.security.cert.X509Certificate需要才能使用它来进行转换和JSSE提供用于执行转换这个属性控制。 例如,它是用来与AJP连接器中,HTTP APR连接器,并与org.apache.catalina.valves.SSLValve 。 如果未指定,将使用默认提供程序。

crlFile

用于验证客户端证书的证书吊销列表。 如果未定义,将不会针对证书吊销列表检查客户端证书。 可以使用URL,绝对路径或相对(对于CATALINA_BASE)路径指定文件。

keyAlias

用于密钥库中的服务器密钥和证书的别名。 如果未指定,将使用从密钥库读取的第一个密钥。 从密钥库读取密钥的顺序是实现相关的。 可能不是这样,从密钥库中读取密钥的顺序与它们被添加的顺序相同。 如果密钥库中存在多个密钥,强烈建议配置keyAlias以确保使用正确的密钥。

keyPass

使用的密码从指定的密钥库文件访问服务器证书。默认值是“ changeit”。

keystoreFile

您在其中存储服务器证书的密钥库文件的路径被加载。缺省情况下,路径名是文件“ .keystore”在运行的Tomcat的用户的操作系统主目录。如果keystoreType不需要的文件使用""此参数(空字符串)。该文件可能使用URL,绝对路径或相对(到CATALINA_BASE)路径来指定。

keystorePass

所使用的密码才能访问指定的密钥存储文件。默认值是的值keyPass属性。

keystoreProvider

要用于服务器证书的密钥库提供者的名称。如果没有指定,注册商列表中的优先顺序,并支持中第一个提供遍历keystoreType使用。

keystoreType

用于服务器证书的类型密钥库文件。如果未指定,缺省值是“ JKS”。

sessionCacheSize

SSL会话数在会话高速缓存来维持。使用0指定无限制的高速缓存大小。如果没有指定,则使用默认值为0。

sessionTimeout

的时间,以秒为单位,建立一个SSL会话之后,它会超时。可以使用0指定无限超时。如果没有指定,则使用86400(24小时)违约。

sslEnabledProtocols

逗号分隔的SSL协议列表为HTTPS连接的支持。如果指定,只有由SSL实现上市,并支持的协议将被启用。如果未指定,则JVM默认(不包括的SSLv2和的SSLv3如果JVM使它们的一方或双方由默认值)被使用。允许的值可以从JVM文档的允许值来获得SSLSocket.setEnabledProtocols()甲骨文的Java 6甲骨文的Java 7注意:有此属性之间的重叠sslProtocol

sslImplementationName

使用SSL实现的类名。如果没有指定,默认org.apache.tomcat.util.net.jsse.JSSEImplementation将使用它包装JVM的默认JSSE提供者。注意,JVM可以被配置为使用不同的JSSE提供作为默认值。

sslProtocol

要使用的SSL协议(单个值可以启用多个协议 – 有关详细信息,请参阅JVM文档)。如果没有指定,默认为TLS允许的值可以从JVM文档创建时获得允许的值算法,SSLContext例如如甲骨文的Java 6甲骨文的Java 7注意:有此属性之间的重叠sslEnabledProtocols

trustManagerClassName

使用自定义信任管理器类的名称,以验证客户端证书。这个类必须有一个无参数的构造函数,还必须实现javax.net.ssl.X509TrustManager如果该属性设置,信任存储属性可以被忽略。

trustMaxCertLength

验证客户端证书时,将被允许中间证书的最大数量。 如果未指定,将使用默认值5。

truststoreAlgorithm

该算法用于信任。如果没有指定,返回的默认值javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()被使用。

truststoreFile

信任存储文件,使用验证客户端证书。缺省值是值javax.net.ssl.trustStore系统属性。如果没有这个属性,也不是系统默认属性设置,没有信任店将进行配置。该文件可能使用URL,绝对路径或相对(到CATALINA_BASE)路径来指定。

truststorePass

该密码才能访问信任存储区。缺省值是值javax.net.ssl.trustStorePassword系统属性。如果该属性为null,则不信任库密码将被配置。如果指定了无效的信任存储密码时,警告将被记录,将尝试进行访问信任存储没有它会跳过的信任存储内容的验证密码。

truststoreProvider

要用于服务器证书的信任提供商的名称。缺省值是值javax.net.ssl.trustStoreProvider系统属性。如果该属性为null,值keystoreProvider作为默认值。如果没有这个属性,默认的系统属性,也没有keystoreProvider设置,注册商列表中的优先顺序,并支持中第一个提供遍历truststoreType使用。

truststoreType

密钥存储的用于信任存储的类型。缺省值是值javax.net.ssl.trustStoreType系统属性。如果该属性为null,值keystoreType作为默认值。

SSL支持 – APR /本地

当启用APR /天然的,将HTTPS连接器将用于保持活动,增加服务器的可扩展性的插座轮询。它还使用OpenSSL的,这可能比JSSE取决于处理器所使用更加优化,并且可以与许多商业加速器部件加以补充。不同的是HTTP连接器,该连接器HTTPS不能使用的sendfile来优化静态文件的处理。

该HTTPS APR /本地连接器具有比HTTP APR /本地连接属性相同,但增加了OpenSSL的具体的人。有关使用OpenSSL的全部细节,请参考OpenSSL的文件及相关的可用很多书(见官方OpenSSL的网站)。对于APR /本地连接的SSL特定的属性包括:

属性 描述
SSLCACertificateFile

mod_ssl的文档

SSLCACertificatePath

mod_ssl的文档

SSLCARevocationFile

mod_ssl的文档

SSLCARevocationPath

mod_ssl的文档

SSLCertificateChainFile

mod_ssl的文档

SSLCACertificateFile

包含了可信证书颁发机构的证书级联的文件的名称。格式是PEM编码。

SSLCACertificatePath

包含了可信证书颁发机构的证书目录名。格式是PEM编码。

SSLCARevocationFile

包含串联的证书吊销列表的证书授权机构的文件的名称。格式是PEM编码。

SSLCARevocationPath

包含证书颁发机构的证书吊销列表的目录的名称。 格式是PEM编码。

SSLCertificateChainFile

包含形成服务器证书的证书链的证书颁发机构的级联证书的文件的名称。 格式是PEM编码。

SSLCertificateFile

包含服务器证书的文件的名称。 格式是PEM编码。

除了该证书,该文件也可包含作为任选元素DH参数和/或用于临时密钥的EC曲线名,如通过产生openssl dhparamopenssl ecparam分别。相应的OpenSSL命令的输出可以简单地连接起来证书文件。该功能需要APR /本地1.1.34或更高版本。

SSLCertificateKeyFile

包含服务器私钥的文件的名称。 格式是PEM编码。 默认值为“SSLCertificateFile”的值,在这种情况下,证书和私钥都必须在此文件中(不推荐)。

SSLCipherSuite

可用于与客户端通信的密码。 默认值为“HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA”。 有关密码配置选项的详细信息,请参阅OpenSSL文档。

SSLDisableCompression

如果设置为禁用压缩true和OpenSSL支持禁用压缩。默认值是false它将继承默认压缩OpenSSL的设置。

SSLHonorCipherOrder

设置为true执行服务器的密码顺序(从SSLCipherSuite,而不是让客户端选择的密码(这是默认设置)设置)。

SSLPassword

传递加密私钥的短语。 如果没有提供“SSLPassword”,回调函数应提示输入密码短语。

SSLProtocol

该协议的名称与客户端通信时支持。这应该是以下中的任何组合的列表:

  • SSLv2
  • SSLv3
  • TLSv1
  • TLSv1.1
  • TLSv2.2
  • 所有

列表中的每个令牌可以用加号(“+”)或减号(“ – ”)前缀。 加号添加协议,减号将删除当前列表。 该列表从空列表开始构建。

该令牌all是一个别名TLSv1+TLSv1.1+TLSv1.2

如果一个基于OpenSSL的安全连接器指定多个协议,将一如既往地支持SSLv2Hello如果指定了一个协议,也不会支持SSLv2Hello

需要注意的是SSLv2SSLv3是固有的不安全性。

如果未指定,默认值all将被使用。

SSLVerifyClient

要求客户端证书。 默认值为“none”,表示客户端将无法提交证书。 其他可接受的值包括“可选”,“require”和“optionalNoCA”。

SSLVerifyDepth

最大深度验证客户端证书。缺省值是“10”。

版权声明:本文为baihuitestsoftware原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/baihuitestsoftware/articles/6484986.html