`

Tomcat 7 HTTP 连接器(一)

 
阅读更多

转自:http://blog.csdn.net/yydcj/article/details/8496485

0摘要

 

本文尝试翻译Tomcat官方文档Apache Tomcat 7连接器相关信息。

1 介绍

HTTP 连接器元素代表了支持HTTP/1.1协议的连接器组件,使Catalina成为一个能够执行servlet和JSP页面的独立的Web服务器。一个HTTP 连接器组件的实例监听服务器上一个特定的TCP端口号上的连接。一个或多个这样的连接器可以配置成一个单一Service的一部分,每个转发到相关联的Engine 处理请求,并创建响应。

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

每个进入的请求需要一个线程处理。如果接收到比当前可用的请求处理线程可以处理更多的并发请求,将创建额外的线程直到达到所配置的最大线程数(maxThreads值)。如果有超过处理能力的更多的请求到来,它们将被堆积在连接器创建的服务器套接字内,直到达到配置中acceptCount 的最大值。任何更多的同步请求将收到“连接被拒绝”的错误,直到有空闲线程来处理它们。

2 属性

2.1 公共属性

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

属性

描述

allowTrace

一个布尔值,它可以用来启用或禁用跟踪HTTP方法。如果没有指定,该属性设置为false。

asyncTimeout

默认超时时间以毫秒为单位的异步请求。如果没有指定,该属性被设置为10000(10秒)。

enableLookups

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

maxHeaderCount

容器允许的请求头字段的最大数目。请求中包含比指定的限制更多的头字段将被拒绝。值小于0表示没有限制。如果没有指定,默认设置为100。

maxParameterCount

将被容器自动解析的最大数量的参数和值对(GET加上POST)。参数值对超出此限制将被忽略。值小于0表示没有限制。如果没有指定,默认为10000。请注意, FailedRequestFilter 过滤器可以用来拒绝达到了极限值的请求。

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请求中是非常有用的。需要注意的是设置其他值(不是POST)会导致Tomcat的行为违反servlet规范的目的。在这里为了符合HTTP规范明确禁止HTTP方法TRACE。默认值是POST

port

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

protocol

设置协议来处理传入流量。默认值是 HTTP/1.1,将使用自动切换机制来选择阻塞的基于Java的连接器或APR /native 为基础的连接器。如果PATH(Windows)或LD_LIBRARY_PATH(在大多数Unix系统)的环境变量包含在Tomcat的本地库里,APR /native 连接器将被使用。如果在本地库中无法找到,阻断基于Java的连接器将被使用。需要注意的是使用HTTPS比Java连接器与APR /native 连接器有不同的设置。一个明确的协议,而不是依靠上述自动切换机构,可用以下值:

org.apache.coyote.http11.Http11Protocol -阻塞式的Java连接器org.apache.coyote.http11.Http11NioProtocol -不阻塞Java连接器org.apache.coyote.http11.Http11AprProtocol -的APR / native 连接器

 也可以使用的用户自定义的实现。看一看在我们的连接器比较图。Java连接器,HTTP和HTTPS,配置是相同的。 APR连接器和APR特定的SSL设置的更多信息,请访问APR文档

proxyName

如果这个连接正在使用的代理服务器配置,配置该属性指定的服务器的名称,可以调用request.getServerName()返回。有关更多信息,请参见代理支持

proxyPort

如果这个连接正在使用的代理服务器配置,配置该属性指定服务器端口,可以调用request.getServerPort()返回。有关更多信息,请参见代理支持

redirectPort

如果该连接器支持非SSL请求,并且接收到的请求为满足安全约束需要SSL传输, Catalina 将自动将请求重定向到指定的端口号。

scheme

将该属性设置为你想调用request.getScheme()返回的协议的名称。例如,对于SSL连接器,你会将此属性设置为“HTTPS ”。默认值是“ HTTP ”。

secure

如果你想调用request.isSecure()收到此连接器的请求返回true,请该该属性设置为true。您希望SSL连接器或非SSL连接器接收数据通过一个SSL加速器,像加密卡,SSL设备,甚至一个web服务器。默认值是假的

URIEncoding

这将指定使用的字符编码​​,来解码URI字符。如果没有指定,ISO-8859-1将被使用。

useBodyEncodingForURI

这指定是否应该用于URI查询参数,而不是使用URIEncoding contentType中指定的编码。此设置兼容性Tomcat 4.1.x版(该版在contentType中指定编码,或者使用request.setCharacterEncoding的方法显式设置(参数为 URL传来的值)。默认值false。

useIPVHosts

将该属性设置为true会导致Tomcat使用收到请求的IP地址,来确定将请求发送到哪个主机。默认值是假的

xpoweredBy

将此属性设置为true会导致Tomcat支持使用Servlet规范的通知,(在规范中推荐使用头字段)。默认值是假的

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics