本文尝试翻译Tomcat官方文档Apache Tomcat 7链接器,不足之处敬请指正。该文先介绍了Tomcat7 HTTP链接器的属性,包括:公共属性、标准实现、Java TCP套接字属性、BIO的具体配置、NIO的具体配置、APR/Native的具体配置。接着介绍了Tomcat的特殊功能,包括:HTTP/1.1和HTTP/1.0的支持、代理支持、SSL支持以及链接器的比较。html
HTTP 链接器元素表明了支持HTTP/1.1协议的链接器组件,使Catalina成为一个可以执行servlet和JSP页面的独立的Web服务器。一个HTTP 链接器组件的实例监听服务器上一个特定的TCP端口号上的链接。一个或多个这样的链接器能够配置成一个单一Service的一部分,每一个转发到相关联的Engine 处理请求,并建立响应。java
若是你要配置的链接器,用于链接到Web服务器使用的的AJP协议(如 mod_jk的1.2.x的链接器适用于Apache 1.3),请参阅 AJPConnector文档。web
每一个进入的请求须要一个线程处理。若是接收到比当前可用的请求处理线程能够处理更多的并发请求,将建立额外的线程直到达到所配置的最大线程数(maxThreads值)。若是有超过处理能力的更多的请求到来,它们将被堆积在链接器建立的服务器套接字内,直到达到配置中acceptCount 的最大值。任何更多的同步请求将收到“链接被拒绝”的错误,直到有空闲线程来处理它们。正则表达式
全部的链接器实现 支持如下属性:算法
属性apache |
描述api |
allowTrace数组 |
一个布尔值,它能够用来启用或禁用跟踪HTTP方法。若是没有指定,该属性设置为false。浏览器 |
asyncTimeout缓存 |
默认超时时间以毫秒为单位的异步请求。若是没有指定,该属性被设置为10000(10秒)。 |
enableLookups |
若是你想 |
maxHeaderCount |
容器容许的请求头字段的最大数目。请求中包含比指定的限制更多的头字段将被拒绝。值小于0表示没有限制。若是没有指定,默认设置为100。 |
maxParameterCount |
将被容器自动解析的最大数量的参数和值对(GET加上POST)。参数值对超出此限制将被忽略。值小于0表示没有限制。若是没有指定,默认为10000。请注意, |
maxPostSize |
将被容器以FORM URL参数形式处理的最大长度(以字节为单位)的POST。经过设置此属性的值小于或等于0能够禁用该限制。若是没有指定,该属性被设置为2097152(2兆字节)。 |
maxSavePostSize |
将被容器在FORM或CLIENT-CERT认证中保存/缓冲的POST的最大尺寸(以字节为单位)。对于这两种类型的身份验证,在用户身份验证以前,POST将被保存/缓冲。对于POST CLIENT-CERT认证,处理该请求的SSL握手和缓冲清空期间,POST将被缓存。对于Form认证,POST将被保存,同时用户将被重定向到登录表单。POST将被一直保留直到用户成功认证或者认证请求关联的会话超时。将此属性设置为-1能够禁用此限制。将此属性设置为0,POST数据在身份验证过程当中将不被保存。若是没有指定,该属性设置为4096(4千字节)。 |
parseBodyMethods |
以逗号分隔的HTTP方法列表,经过方法列表,等同于POST方法,request 正文将被解析成请求参数。这在RESTful应用程序要支持以POST式的语义解析PUT请求中是很是有用的。须要注意的是设置其余值(不是 |
port |
TCP端口号,链接器利用该端口号将建立一个服务器套接字,并等待传入的链接。你的操做系统将只容许一个服务器应用程序在一个特定的IP地址侦听特定的端口号。若是使用特殊值0(零),则Tomcat将为链接器随机选择一个空闲的端口。这是一般只用在嵌入式和测试应用程序。 |
protocol |
设置协议来处理传入流量。默认值是
也可使用的用户自定义的实现。看一看在咱们的链接器比较图。Java链接器,HTTP和HTTPS,配置是相同的。 APR链接器和APR特定的SSL设置的更多信息,请访问APR文档 |
proxyName |
若是这个链接正在使用的代理服务器配置,配置该属性指定的服务器的名称,能够调用 |
proxyPort |
若是这个链接正在使用的代理服务器配置,配置该属性指定服务器端口,能够调用 |
redirectPort |
若是该链接器支持非SSL请求,而且接收到的请求为知足 |
scheme |
将该属性设置为你想调用 |
secure |
若是你想调用 |
URIEncoding |
这将指定使用的字符编码,来解码URI字符。若是没有指定,ISO-8859-1将被使用。 |
useBodyEncodingForURI |
这指定是否应该用于URI查询参数,而不是使用URIEncoding contentType中指定的编码。此设置兼容性Tomcat 4.1.x版(该版在contentType中指定编码,或者使用request.setCharacterEncoding的方法显式设置(参数为URL传来的值)。默认值false。 |
useIPVHosts |
将该属性设置为 |
xpoweredBy |
将此属性设置为 |
除了上面列出的常见的链接器属性,标准的HTTP链接器(BIO,NIO和APR/native)都支持如下属性。
属性 |
描述 |
acceptCount |
当全部可能的请求处理线程都在使用时,传入链接请求的最大队列长度。当队列满时收到的任何请求将被拒绝。默认值是100。 |
acceptorThreadCount |
用于接受链接的线程的数量。在一个多CPU的机器上,增长该值,虽然你可能不会真正须要超过2个。此外,有不少非保持活动链接,您可能须要增长这个值。默认值是 1。 |
acceptorThreadPriority |
接收器线程的优先级。该线程用来接受新的链接。默认值是5(java.lang.Thread.NORM_PRIORITY常量)。更多这个优先级是什么意思的详细信息,请查看java.lang.Thread的类的JavaDoc 。 |
address |
对于拥有多个IP地址的服务器,该属性指定哪一个地址将被用于在指定端口上监听。默认状况下,该端口将被用于与服务器相关联的全部IP地址。 |
bindOnInit |
控制链接器绑定时套接字的使用。缺省状况,当链接器被启动时套接字被绑定和当链接器被销毁时套接字解除绑定。若是设置为false,链接器启动时套接字被绑定,链接器中止时套接字解除绑定。 |
compressableMimeType |
该值是一个被用于HTTP压缩的逗号分隔的MIME类型列表。默认值是text / html类型,为text / xml,text / plain。 |
compression |
为了节省服务器带宽,链接器可使用HTTP/1.1 GZIP压缩。可接受的参数的值是“off ”(禁用压缩),“on ”(容许压缩,这会致使文本数据被压缩),“force ”(强制在全部的状况下压缩),或者一个整数值(这是至关于为“on”,但指定了输出以前被压缩的数据最小量)。若是不知道内容长度但被设置为“on”或更积极的压缩,输出的数据也将被压缩。若是没有指定,该属性被设置为“关”。 注意:这是使用压缩(节省您的带宽)和使用sendfile功能(节省你的CPU周期)之间的权衡。若是链接器支持sendfile功能,例如NIO链接,则使用sendfile将优先于压缩。症状是48 KB的静态文件将未压缩就发送。你能够以下文所述经过设置链接器的useSendfile属性来关闭sendfile,或在默认的conf/web.xml或者你的web应用的web.xml中配置DefaultServlet来改变sendfile的使用量阈值。 |
compressionMinSize |
若是压缩被设置为“on”,那么该属性能够用于指定在输出以前被压缩的数据的最小量。若是未指定,此属性默认为“2048”。 |
connectionLinger |
链接器的套接字被关闭时的逗留秒数。若是没有指定,将使用默认的JVM。 |
connectionTimeout |
在将提交的请求URI行呈现以后,链接器将等待接受链接的毫秒数。使用值-1表示没有超时(即无限)。默认值是60000(60秒),但请注意,Tomcat的标准server.xml中,设置为20000(即20秒)。 |
connectionUploadTimeout |
上传数据过程当中,指定的以毫秒为单位超时时间。只有在设置disableUploadTimeout为false有效。 |
disableUploadTimeout |
此标志容许servlet容器在数据上传时使用不一样的链接超时,一般较长。若是没有指定,该属性被设置为true,禁用上传超时。 |
executor |
指向Executor元素的引用。若是这个属性被设置,而且被命名的executor存在,链接器将使用这个executor,而其余全部线程相关属性将被忽略。请注意共享的executor若是没有指定到一个链接器,则该链接器将使用一个私有的,内部的executor来提供线程池。 |
KeepAliveTimeout |
此链接器在关闭链接以前将等待另外一个HTTP请求的毫秒数。默认值是使用已设置的connectionTimeout属性的值。使用值-1表示没有超时(即无限)。 |
maxConnections |
在任何给定的时间服务器接受并处理的最大链接数。当这个数字已经达到了,服务器将不会接受任何链接,直到链接的数量降到低于此值。基于acceptCount的设置,操做系统可能仍然接受链接。默认值根据不一样的链接器类型而不一样。对于BIO,默认的是maxThreads的值,除非使用了Executor,在这种状况下默认值是executor的maxThreads值 。对于NIO的默认值是10000。APR /native的默认值是8192。 须要注意的是Windows系统的APR/native,所配置的值将减小到小于或等于maxConnections的1024的倍数的最大值。这样作是出于性能方面的考虑。 若是设置的值-1,maxConnections功能被禁用,并且链接数将不作计算。 |
maxHttpHeaderSize |
请求和响应的HTTP头的(以字节为单位的)最大尺寸。若是没有指定,该属性被设置为8192(8 KB)。 |
maxKeepAliveRequests |
HTTP请求最大长链接个数。将此属性设置为1,将禁用HTTP/1.0、以及HTTP/1.1的长链接。设置为-1,不由用。若是没有指定,该属性被设置为100。 |
maxThreads |
最多同时处理的链接数,Tomcat使用线程来处理接收的每一个请求。这个值表示Tomcat可建立的最大的线程数。若是没有指定,该属性被设置为200。若是使用了execute将忽略此链接器的该属性,链接器将使用execute,而不是一个内部线程池来处理请求。 |
maxTrailerSize |
限制一个分块的HTTP请求中的最后一个块的尾随标头的总长度。若是该值是-1,没有限制的被强加。若是没有指定,默认值是8192。 |
minSpareThreads |
始终保持运行最小线程数。若是没有指定,则默认为10。 |
noCompressionUserAgents |
该值是一个正则表达式(使用java.util.regex),匹配不该该使用压缩的HTTP客户端的用户代理标头。由于这些客户端,虽然他们宣称支持压缩功能,但实现不完整。默认值是一个空字符串(正则表达式匹配禁用)。 |
processorCache |
协议处理器缓存Processor对象以提升性能。此设置规定了这些对象有多少能获得缓存。-1意味着无限制,默认为200。若是不使用Servlet 3.0的异步处理,一个好的默认是使用maxThreads设置。若是使用Servlet 3.0的异步处理,一个好的默认是使用maxThreads和最大预期的并发请求(同步和异步)的最大值中的较大值。 |
restrictedUserAgents |
该值是一个正则表达式(使用java.util.regex),匹配用户代理头的HTTP浏览器将不能使用HTTP/1.1或HTTP/1.0长链接,即便该浏览器宣称支持这些功能的。默认值是一个空字符串(正则表达式匹配禁用)。 |
server |
覆盖服务器的HTTP响应头。若是设置了这个属性的值将覆盖Web应用程序设置的Tomcat的默认头和任何服务器头。若是没有设置,应用程序指定的任何值将被使用。若是应用程序没有指定一个值,那么Apache-Coyote/1.1将被使用。除非你是偏执狂,你将再也不须要此功能。 |
socketBuffer |
为套接字输出缓冲而提供的缓冲区的大小(以字节为单位)。-1能够被指定来禁止使用的缓冲区。默认状况下,一个9000个字节的缓冲区将被使用。 |
SSLEnabled |
在链接器上使用此属性来启用SSL加密传输。若是要打开SSL握手/加密/解密,请设置true。默认值是false。当设置这个值为true时,为了传递正确的request.getScheme()和 request.isSecure()到servlets,你须要设置scheme和secure属性。更多信息请查看SSL支持。 |
tcpNoDelay |
若是设置为true,TCP_NO_DELAY选项将被设置在服务器上的套接字上,在大多数状况下,这样能够提升性能。默认设置为true。 |
threadPriority |
在JVM中请求处理线程的优先级。默认值是5(java.lang.Thread.NORM_PRIORITY常量值)。关于优先级的更多详细信息,请查看java.lang.Thread的类的JavaDoc 。 |
除了上文列出的通用的链接器和HTTP属性,BIO和NIO实现还支持下面的JavaTCP套接字属性。
属性 |
描述 |
socket.rxBufSize |
(int)套接字接收缓冲区(SO_RCVBUF)大小(以字节为单位)。若是没有设置,JVM默认值将被使用。 |
socket.txBufSize |
(int)套接字发送缓冲区(SO_SNDBUF)大小(以字节为单位)。若是没有设置,JVM默认值将被使用。 |
socket.tcpNoDelay |
(bool)至关于到标准属性 tcpNoDelay。 |
socket.soKeepAlive |
(bool)套接字的长链接(SO_KEEPALIVE)设置。若是没有设置,JVM默认值将被使用。 |
socket.ooBInline |
(bool)套接字的OOBINLINE设置。若是没有设置,JVM默认值将被使用。 |
socket.soReuseAddress |
(bool)套接字复用地址选项(SO_REUSEADDR)。若是没有设置,JVM默认值将被使用。 |
socket.soLingerOn |
(bool)套接字的延迟关闭选项(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)套接字解锁的超时时间。当一个链接器中止时,它会经过打开一个链接到自己的链接器来尝试释放acceptor 线程。默认值是250(以毫秒为单位) |
下面是BIO链接器的特定属性。
属性 |
描述 |
disableKeepAlivePercentage |
为提升可扩展性,在长链接失效以前被使用的处理线程的百分比。小于0的值将被设为0,大于100的值将被设为100。若是没有指定,默认值是75。 |
下面是NIO链接器的特定属性。
属性 |
描述 |
pollerThreadCount |
(int)用来处理轮询事件的线程的数量。在版本7.0.27及之前版本,默认值是每一个处理器1个。版本7.0.28的默认值是每一个处理器1个,但不超过2个。 当接受一个套接字,操做系统拥有全局的锁。因此超过2个线程的好处而迅速减少。有一个以上的线程是由于系统须要很是迅速地接受链接。但一般只要增长acceptCount值就能够解决这个问题。增长该值也多是有用的,当大量发送文件操做发生的时候。 |
pollerThreadPriority |
(int)轮询线程的优先级。默认值是5(java.lang.Thread.NORM_PRIORITY常量值)。优先级的更多详细信息,能够查考java.lang.Thread类的JavaDoc 。 |
selectorTimeout |
(int)选择轮询器select()的超时时间(以毫秒为单位)。这个值很是重要,由于链接清理工做也是在同一个线程里的,因此不要将此值设置为一个很是高的。默认值是1000毫秒。 |
useComet |
(bool)是否容许Comet servlet。默认值是 true。 |
useSendfile |
(bool)使用此属性来启用或禁用sendfile的能力。默认值是true。 |
socket.directBuffer |
(bool)选择使用直接ByteBuffers或Java映射的ByteBuffers。默认是false。 |
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池,也能够是基于尺寸大小,而不是基于对象数的。该大小的计算以下: 值(以字节为单位),默认值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)以减小选择器的争用,在池中使用的最大备用选择器个数。当选择器返回到池中时,系统能够决定保留它或者让他垃圾回收。当org.apache.tomcat.util.net.NioSelectorShared 值设置为false时,使用此选项。默认值是-1(无限制)。 |
命令行选项 |
下面的命令行选项可用于NIO链接器:-Dorg.apache.tomcat.util.net.NioSelectorShared=true|false 默认状况下是true。若是你想每一个线程使用一个选择器,将此值设置为false。当你将它设置为false,你能够经过使用selectorPool.maxSelectors属性控制选择器池的大小。 |
oomParachute |
(int)NIO链接器实现了一个名叫parachute的OutOfMemoryError错误的策略。它拥有一个块的数据做为一个字节数组。在一个OOM的状况下,这个数据块被释放,并报告错误。这会给VM足够的空间来清理。oomParachute表明parachute(字节数组)的大小(以字节为单位)。默认值是 1024 * 1024(1MB)。请注意,这仅适用于关于Java堆空间的OOM错误,也不是绝对保证,你将可以恢复全部。若是你有一个Java堆以外OOM的,那么这个parachute也无济于事。 |
下面是APR/Native 链接器的特定属性。
属性 |
描述 |
deferAccept |
在链接器的监听套接字上设置TCP_DEFER_ACCEPT标志。当操做系统支持TCP_DEFER_ACCEPT时默认值是true,不然它是false。 |
pollerSize |
在一个给定的时间内,负责长链接轮询的轮询器可以持有的线程数。额外的链接将被立刻关闭。默认值是8192,与8192个长链接数一致。是maxConnections的一个代名词。 |
pollerThreadCount |
用于轮询长链接的线程数。Windows系统默认选择,每一个线程管理的套接字数小于1024。对于Linux的默认值是1。更改Windows下的默认值可能有负面的性能影响。 |
pollTime |
轮询调用持续的时间(以微秒为单位)。在某些状况下,下降该值将略微减小潜在的链接数,但随着增长的轮询调用会使用更多的CPU。默认值是2000(毫秒)。 |
sendfileSize |
在给定时间内,负责异步发送静态文件的轮询器能够持有的套接字数。额外的链接将被立刻关闭,没有任何数据被发送(在客户端产生一个长度为零的文件)。请注意,在大多数状况下,的sendfile是一个马上返回的调用(被内核照顾的“同步”),并且sendfile轮询器将不会被使用,因此能够同时发送的静态文件的数量大于指定的值。默认值是1024。 |
sendfileThreadCount |
服务于sendfile套接字的线程数。因为Windows系统默认选择,每一个线程管理的套接字小于1024。Linux系统的默认值是1。更改Windows系统下的默认值可能有负面的性能影响。 |
threadPriority |
(int)接收器和轮询器线程的优先级。默认值是5(java.lang.Thread.NORM_PRIORITY常量值)。优先级的详细信息请查看java.lang.Thread类的JavaDoc 。 |
useComet |
(bool)容许或禁止Comet servlet。默认值是 true。 |
useSendfile |
(bool)使用此属性来启用或禁用sendfile的能力。默认值是true。 |
这个时候没有。
该链接器支持在RFC 2616中描述的HTTP/1.1协议的全部必需功能,包括持久链接,管道,预期和分块编码所需的功能。若是客户端(一般是浏览器)只支持HTTP/1.0, 链接器将优雅地向下兼容以支持该协议。启用这种支持,没有特殊的配置要求。该链接器还支持HTTP/1.0长链接。
RFC 2616规定,HTTP服务器老是在它们响应的开头加上它们宣称支持的最高的HTTP版本。所以,此 链接器将老是在其响应开头返回HTTP/1.1。
当Tomcat部署在代理服务器的后面的时候,proxyName和proxyPort属性能够被使用。这些属性修改web服务器调用的request.getServerName()和request.getServerPort() 方法的值,这是常常被用来构造重定向de 绝对路径的URL。若是不配置这些属性,返回的值将反映代理服务器接收链接的服务器名称和端口,而不是客户端定向原始请求的服务器名称和端口。
有关详细信息,请参阅 如何使用代理服务器支持。
经过设置启用SSL属性为true,您能够启用SSL支持此链接器的特定实例 。
你还须要设置scheme 和secure 属性的值分别为https和true,传递正确的信息到servlet。
BIO与NIO链接器使用JSSE的SSL,而APR / native链接器使用OpenSSL。所以,除了使用不一样的属性来配置SSL的APR / native链接器外,还须要以不一样的格式提供密钥和证书。
有关详细信息,请参阅文档SSL怎么配置。
BIO与NIO链接器使用下面的属性来配置SSL:
属性 |
描述 |
algorithm |
使用的证书编码算法。默认 |
allowUnsafeLegacyRenegotiation |
容许不安全的传统的TLS从新协商,它有可能容许暴露用户给CVE-2009-3555(处理会话重协商过程当中TLS实现存在错误,容许经过中间人攻击,注入任意明文到已存在的TLS会话中。)的状况发生。若是没有指定,默认设置为 |
ciphers |
逗号分隔的这个套接字被容许使用的加密算法列表。默认状况下,在JVM的默认密码将被使用。请注意,这一般意味着,弱输出等级的密码将被包含在列表的可用密码中。密码被指定使用JSSE密码的命名约定。特殊值ALL ,将启用全部支持的密码。这将包括许多不安全。ALL仅用于测试目的。 |
clientAuth |
若是在接受链接以前,你想让从客户端来的SSL协议栈须要一个有效的证书链则设置为 |
clientCertProvider |
当客户端证书信息的以表单形式而不是 |
crlFile |
用来验证客户端证书的证书吊销列表。若是没有定义,将不核对证书吊销列表来检查客户端证书。 |
keyAlias |
用于作key库中的服务器证书的别名。若是没有指定将使用在key库中读取的第一个key。 |
keypass |
该密码用于访问指定的keystore文件的服务器证书。默认值是“ |
keystoreFile |
要加载的服务器证书存放的keystore文件的路径名。默认状况下,该文件的路径名是“ |
keystorePass |
该密码用于访问指定的keystore文件。默认值是 |
keystoreProvider |
被用于服务器证书的keystore 提供者的名称。若是未指定,将选择按优先顺序注册过的提供者列表的第一个支持keystoreType的提供者。 |
keystoreType |
用于服务器证书的keystore文件的类型。若是没有指定,默认值是“ |
sessionCacheSize |
保持在session缓存中的SSL会话的数量。使用0到指定一个无大小限制的缓存。若是没有指定,默认值为0。 |
sessionTimeout |
在建立一个SSL会话后它将超时的时间(以秒为单位)。使用0指定无限制超时。若是没有指定,默认为86400(24小时)。 |
sslEnabledProtocols |
使用的SSL协议的列表。若是未指定,则使用JVM的默认设置。 |
sslImplementationName |
使用的SSL实现的类名。若是未指定, 将使用默认的 |
sslProtocol |
使用的SSL协议版本。若是没有指定,默认是“ |
trustManagerClassName |
一个用来验证客户端证书的自定义信任管理类的名称。这个类必须有一个无参数的构造并且必须实现 |
trustMaxCertLength |
验证客户端证书时,容许的中间证书的最大数量。若是没有指定,默认值5将被使用。 |
truststoreAlgorithm |
该算法用于truststore。若是没有指定,将使用由 |
truststoreFile |
用来验证客户端证书的trust store文件。默认值是 |
truststorePass |
访问trust store的密码。默认值是 |
truststoreProvider |
用于服务器证书的truststore提供者的名称。默认值是 |
truststoreType |
用于trust store的key store的类型。默认值是 |
APR / Native启用时,HTTPS链接器将使用一个套接字来轮询长链接,以提升服务器的可扩展性。它还使用OpenSSL,这可能比JSSE更优化(取决于所使用的处理器),而且能够补充许多商业加速器组件。不一样于HTTP链接器,HTTPS链接器不能使用的sendfile优化静态文件的处理。
HTTPS APR / Native链接器具备HTTP APR / Native链接器相同的属性,而且增长了OpenSSL的特殊属性。使用OpenSSL的全部详细资料,请参阅OpenSSL资料和许多可用的书籍(请参阅官方OpenSSL的网站)。SSL特有的APR /Native链接器的属性:
属性 |
描述 |
SSLCACertificateFile |
查看mod_ssl的文档。 |
SSLCACertificatePath |
查看mod_ssl的文档。 |
SSLCARevocationFile |
查看mod_ssl的文档。 |
SSLCARevocationPath |
查看mod_ssl的文档。 |
SSLCertificateChainFile |
查看mod_ssl的文档。 |
SSLCACertificateFile |
包含受信任的证书颁发机构的拼接的证书文件的名称。是PEM编码的格式。 |
SSLCACertificatePath |
包含的受信任的证书颁发机构的证书目录名称。是PEM编码的格式。 |
SSLCARevocationFile |
包含证书颁发机构的拼接的证书吊销列表文件的名称。是PEM编码的格式。 |
SSLCARevocationPath |
包含的证书颁发机构的拼接的证书撤销列表的目录的名称。是PEM编码的格式。 |
SSLCertificateChainFile |
包含链接的certifcates造成的资格证书链的服务器证书的证书颁发机构的的文件的名称。是PEM编码的格式。 |
SSLCertificateFile |
包含服务器证书的文件的名称。是PEM编码的格式。 |
SSLCertificateKeyFile |
包含服务器私钥的文件名称。是PEM编码的格式。默认值是SSLCertificateFile的值,在这种状况下,证书和私钥都必须在这个文件中(不推荐)。 |
SSLCipherSuite |
可用于与客户端进行通讯的密码。默认值是“ALL”,其余可接受的值是以“:”分隔的一组密码,(请参阅OpenSSL的文档列表中支持的密码)。 |
SSLHonorCipherOrder |
设置为true(这是默认值)将强制服务器的密码规则(按照 |
SSLPassword |
用于私有密钥加密的口令短语。若是没有提供“SSLPassword”时,回调函数将提示输入口令短语。 |
SSLProtocol |
可被用来与客户端通讯的协议。默认值是all,这是等同 |
SSLVerifyClient |
向客户端要求证书。默认值是“none”,这意味着客户端将不会有机会提交证书。其余可接受的值包括“optional”,“require”和“optionalNoCA”。 |
SSLVerifyDepth |
客户端证书的最大验证深度。默认值是“10”。 |
下面是一个小的图表,显示了链接器如何区分。
Java Blocking Connector BIO |
Java Non Blocking Connector NIO |
APR/native Connector APR |
|
Classname |
Http11Protocol |
Http11NioProtocol |
Http11AprProtocol |
Tomcat Version |
3.x onwards |
6.x onwards |
5.5.x onwards |
Support Pollin |
NO |
YES |
YES |
Polling Size |
N/A |
maxConnections |
maxConnections |
Read HTTP Request |
Blocking |
Non Blocking |
Blocking |
Read HTTP Body |
Blocking |
Sim Blocking |
Blocking |
Write HTTP Response |
Blocking |
Sim Blocking |
Blocking |
Wait for next Request |
Blocking |
Non Blocking |
Non Blocking |
SSL Support |
Java SSL |
Java SSL |
OpenSSL |
SSL Handshake |
Blocking |
Non blocking |
Blocking |
Max Connections |
maxConnections |
maxConnections |
maxConnections |