Tomcat HTTP/1.1 Connector 参数整理
2024-07-24 13:21:05 220人阅读
HTTP/1.1 Connector | |
概述 |
Coyote HTTP/1.1 Connector元素是一个支持HTTP/1.1协议的Connector组件。它使Catalina除了能够执行servlet和JSP页面外,还能够作为一个单独的web server运行。Connector对象的实例在服务器上监听特定的TCP端口。一个Service可以配置一个或多个这样的Connector,每个Connector都把请求转发给对应Engine进行处理,并产生响应。 在 服务器启动的时候,Connector会创建一些请求处理线程(基于minProcessors属性值)。每个请求需要一个线程为其服务,直到服务完成。 如果同一时刻的请求数多于可用的请求处理线程,会创建额外的处理线程,线程数的上限是maxProcessors。如果已经到达了最大请求数,仍然有请求 发生,它们被缓存在由Connector创建的server socket中,直到缓存的上限(由acceptCount属性的值定义)。这以后所有的请求都会收到“拒绝连接”的错误,直到有资源能够处理它们。
|
属性 |
公共属性 | 所有Connector的实现支持如下属性: 属性 | 描述 |
---|
enableLookups | 如果希望调用request.getRemoteHost()进行DNS查询,以返回远程客户的实际主机名,将enableLookups设为true。如果希望忽略DNS查询,仅仅返回IP地址,设为false(这样提高了性能)。缺省情况下,DNS查询是使能的。 | redirectPort | 如果Connector支持非SSL请求,在收到一个要求使用SSL传输的请求以后,Catalina会自动将该请求重定向到这里指定的端口号。 | scheme | 调用request.getScheme()时返回的协议名称。比如,在SSL Connector上可能将这个属性设为“https”。缺省值为“http”,更多信息,参考SSL支持 | secure | 如果希望在该Connector接收到的请求上调用request.isSecure()返回true,设置该属性为true。缺省值为false。 |
|
标准实现 | Coyote HTTP/1.1 Connector的标准实现是org.apache.coyote.tomcat5.CoyoteConnector。它还支持如下的附加属性 属性 | 描述 |
---|
acceptCount | 当所有可能的请求处理线程都被使用的时候,连接请求队列的最大长度。如果该队列为满,所有的请求都被拒绝,缺省值为10。 | address | 对于具有多个IP地址的server,这个属性指定了用于监听特定端口的地址。缺省情况下,端口作用于server的所有IP地址。 | bufferSize | connector创建的输入流缓冲区的大小(以字节为单位)。缺省情况下,bufferSize=2048。 | compression | 为 了节省服务器带宽,Connector可能使用HTTP/1.1GZIP压缩。这个参数的可接受值为“off”(不使用压缩),“on”(压缩文本数据),“force”(在所有的情况下强制压缩),或者使用一个数值 整数(等价于“on”,但是指定了输出被压缩是的最小的数据数)。如果content-length未知, 而compression设置成“on”或者 更强,输出也会被压缩。如果没有指定,这个属性被设成“off” | connectionLinger | 当Connector使用的socket被关闭的时候,保留该socket的时间,以毫秒为单位。缺省值为-1(不使用socket linger) | connectionTimeout | 在Connector接受一个连接以后,等待发生第一个请求的时间,以毫秒为单位。缺省值为60000(60秒) | debug | 日志消息的详细程度,数字越大,输出越详细,如果没有指定,使用缺省值0。 | disableUploadTimeout | 这个标志允许servlet container在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上载的时候更长的超时时间。如果没有指定,设为false。 | maxKeepAliveRequests | 在server关闭连接之前,接受的HTTP请求的最大数目。如果该值设为1,会禁止HTTP/1.0保活,同时也会禁止HTTP/1.1保活和pipelining。如果没有指定,设为100。 | maxSpareThreads | 在线程池开始停止不必要的线程之前,允许存在的最大未使用的请求处理线程。缺省值为50。 | maxThreads | Connector能够创建的最大请求处理线程数,这个值决定了同时能够处理的最大请求数。如果没有指定,缺省值为200。 | minSpareThreads | 当Connector第一次启动时,创建的请求处理线程数。connector同时必须保证指定数目的空闲处理线程。这个值应该设置成比maxThreads小的数值,缺省值为4。 | port | Connector创建server socket并等待连接的TCP端口号。操作系统在特定的IP地址上只允许一个服务器应用程序监听特定的端口。 | protocol | 为了使用HTTP处理器,该属性值必须为HTTP/1.1(缺省值) | proxyName | 如果connector在代理配置中使用,将这个属性设置成调用request.getServerName()时返回的服务器名称。更多信息参考代理支持。 | proxyPort | 如果Connector在代理配置中使用,这个属性指定了调用request.getServerPort()返回的端口值。更多信息参考代理支持。 | socketBuffer | socket输出缓冲区的大小。如果为-1,不使用缓冲。缺省值为9000字节。 | tcpNoDelay | 如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。 |
|
|
嵌套组件 |
可以嵌套在Connector中的唯一元素是Factory,用来配置服务器套接口工厂组件。这个组件从来都不需要,现在支持这个组件是为了与Tomcat的早期版本兼容。
|
专有特征 |
HTTP/1.1 和HTTP/1.0 支持 | Connector 支持HTTP/1.1协议的所有必需特征(如RFC2616所描述的),包括永久性连接,流水线,expectations and chunked encoding。如果客户端(通常是一个浏览器)只支持HTTP/1.0,Connector会自动跳回到HTTP/1.0。不需要特殊的配置来使能这 个支持。Connector也支持HTTP/1.0保活机制。 RFC2616要求HTTP服务器的响应总是以它们宣称支持的最高HTTP版本开始。因此,这个Connector在它的响应的开始总是返回HTTP/1.1。
|
日志输出 | Connector产生的任何调试或者异常信息都会被自动路由到与Connector所属的Engine的Logger。不需要特殊的配置来使能这个支持。
|
代理支持 | 在Tomcat位于代理服务器后面时,可以使用proxyName和proxyPort属性。这些属性修改了调用 requset.getServerName()和request.getServerPort()的返回值,用来构造重定向的绝对URL。如果不设置这 些值,返回值反映了代理服务器收到的连接的服务器名称和端口号,而不是客户端发起的服务器名称和端口号。更多信息,参考代理支持HOW-TO |
SSL支持 | 对Connector的特定实例,可以将secure属性设为true,来使能SSL支持。另外,可以配置如下属性: 属性 | 描述 |
---|
algorithm | 使用的认证编码算法。缺省值为SunX509。 | clientAuth | 如果在接受某个连接之前,需要客户端发送有效证书链,将该值设为true。如果为false(缺省值),不需要使用证书链。除非客户端请求被CLIENT-CERT认证保护的资源。 | keystoreFile | 存储服务器证书的keystore文件路径。缺省情况下,路径指向运行Tomcat的用户主目录下的".keystore"。 | keystorePass | 用来访问服务器证书的密码,缺省值未"changeit" | keystoreType | 用于存储服务器证书的keystore文件的类型。缺省值未"JKS" | sslProtocol | SSL协议的版本号,缺省值是TLS | ciphers | 可以使用的加密算法列表,用逗号分开。如果没有指定,可以使用任何算法。 |
|
|
Tomcat HTTP/1.1 Connector 参数整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。