3 嵌套组件
这个时候没有。
4 特殊功能
4.1 HTTP/1.1和HTTP/1.0的支持
该连接器支持在RFC 2616中描述的HTTP/1.1协议的所有必需功能,包括持久连接,管道,预期和分块编码所需的功能。如果客户端(通常是浏览器)只支持HTTP/1.0, 连接器将优雅地向下兼容以支持该协议。启用这种支持,没有特殊的配置要求。该连接器还支持HTTP/1.0长连接。
RFC 2616规定,HTTP服务器总是在它们响应的开头加上它们宣称支持的最高的HTTP版本。因此,此 连接器将总是在其响应开头返回HTTP/1.1
。
4.2 代理支持
当Tomcat部署在代理服务器的后面的时候,proxyName和proxyPort属性可以被使用。这些属性修改web服务器调用的request.getServerName()和request.getServerPort() 方法的值,这是经常被用来构造重定向de 绝对路径的URL。如果不配置这些属性,返回的值将反映代理服务器接收连接的服务器名称和端口,而不是客户端定向原始请求的服务器名称和端口。
有关详细信息,请参阅 如何使用代理服务器支持。
4.3 SSL支持
通过设置启用SSL属性为true,您可以启用SSL支持此连接器的特定实例 。
你还需要设置scheme 和secure 属性的值分别为https和true,传递正确的信息到servlet。
BIO与NIO连接器使用JSSE的SSL,而APR / native连接器使用OpenSSL。因此,除了使用不同的属性来配置SSL的APR / native连接器外,还需要以不同的格式提供密钥和证书。
有关详细信息,请参阅文档SSL怎么配置。
4.3.1 SSL支持-BIO与NIO
BIO与NIO连接器使用下面的属性来配置SSL:
属性 | 描述 |
algorithm | 使用的证书编码算法。默认 |
| 允许不安全的传统的TLS重新协商,它有可能允许暴露用户给CVE-2009-3555(处理会话重协商过程中TLS实现存在错误,允许通过中间人攻击,注入任意明文到已存在的TLS会话中。)的情况发生。如果没有指定,默认设置为 |
ciphers | 逗号分隔的这个套接字被允许使用的加密算法列表。默认情况下,在JVM的默认密码将被使用。请注意,这通常意味着,弱输出等级的密码将被包含在列表的可用密码中。密码被指定使用JSSE密码的命名约定。特殊值 |
| 如果在接受连接之前,你想让从客户端来的SSL协议栈需要一个有效的证书链则设置为 |
| 当客户端证书信息的以表单形式而不是 |
| 用来验证客户端证书的证书吊销列表。如果没有定义,将不核对证书吊销列表来检查客户端证书。 |
| 用于做key库中的服务器证书的别名。如果没有指定将使用在key库中读取的第一个key。 |
| 该密码用于访问指定的keystore文件的服务器证书。默认值是“ |
| 要加载的服务器证书存放的keystore文件的路径名。默认情况下,该文件的路径名是“ |
| 该密码用于访问指定的keystore文件。默认值是 |
| 被用于服务器证书的keystore 提供者的名称。如果未指定,将选择按优先顺序注册过的提供者列表的第一个支持 |
| 用于服务器证书的keystore文件的类型。如果没有指定,默认值是“ |
| 保持在session缓存中的SSL会话的数量。使用0到指定一个无大小限制的缓存。如果没有指定,默认值为0。 |
| 在创建一个SSL会话后它将超时的时间(以秒为单位)。使用0指定无限制超时。如果没有指定,默认为86400(24小时)。 |
| 使用的SSL协议的列表。如果未指定,则使用JVM的默认设置。 |
| 使用的SSL实现的类名。如果未指定, 将使用默认的 |
| 使用的SSL协议版本。如果没有指定,默认是“ |
| 一个用来验证客户端证书的自定义信任管理类的名称。这个类必须有一个无参数的构造而且必须实现 |
| 验证客户端证书时,允许的中间证书的最大数量。如果没有指定,默认值5将被使用。 |
| 该算法用于truststore。如果没有指定,将使用由 |
| 用来验证客户端证书的trust store文件。默认值是 |
| 访问trust store的密码。默认值是 |
| 用于服务器证书的truststore提供者的名称。默认值是 |
| 用于trust store的key store的类型。默认值是 |
4.3.2 SSL支持 - APR /Native
APR / Native启用时,HTTPS连接器将使用一个套接字来轮询长连接,以提高服务器的可扩展性。它还使用OpenSSL,这可能比JSSE更优化(取决于所使用的处理器),并且可以补充许多商业加速器组件。不同于HTTP连接器,HTTPS连接器不能使用的sendfile优化静态文件的处理。
HTTPS APR / Native连接器具有HTTP APR / Native连接器相同的属性,并且增加了OpenSSL的特殊属性。使用OpenSSL的所有详细资料,请参阅OpenSSL资料和许多可用的书籍(请参阅官方OpenSSL的网站)。SSL特有的APR /Native连接器的属性:
属性 | 描述 |
| 查看mod_ssl的文档。 |
| 查看mod_ssl的文档。 |
| 查看mod_ssl的文档。 |
| 查看mod_ssl的文档。 |
| 查看mod_ssl的文档。 |
| 包含受信任的证书颁发机构的拼接的证书文件的名称。是PEM编码的格式。 |
| 包含的受信任的证书颁发机构的证书目录名称。是PEM编码的格式。 |
| 包含证书颁发机构的拼接的证书吊销列表文件的名称。是PEM编码的格式。 |
| 包含的证书颁发机构的拼接的证书撤销列表的目录的名称。是PEM编码的格式。 |
| 包含连接的certifcates形成的资格证书链的服务器证书的证书颁发机构的的文件的名称。是PEM编码的格式。 |
| 包含服务器证书的文件的名称。是PEM编码的格式。 |
| 包含服务器私钥的文件名称。是PEM编码的格式。默认值是SSLCertificateFile的值,在这种情况下,证书和私钥都必须在这个文件中(不推荐)。 |
| 可用于与客户端进行通信的密码。默认值是“ALL”,其他可接受的值是以“:”分隔的一组密码,(请参阅OpenSSL的文档列表中支持的密码)。 |
| 设置为true(这是默认值)将强制服务器的密码规则(按照 |
| 用于私有密钥加密的口令短语。如果没有提供“SSLPassword”时,回调函数将提示输入口令短语。 |
| 可被用来与客户端通信的协议。默认值是all,这是等同 |
| 向客户端要求证书。默认值是“none”,这意味着客户端将不会有机会提交证书。其他可接受的值包括“optional”,“require”和“optionalNoCA”。 |
| 客户端证书的最大验证深度。默认值是“10”。 |
4.4连接器的比较
下面是一个小的图表,显示了连接器如何区分。
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 |