`

Tomcat 7 HTTP 连接器(四)-特殊功能

 
阅读更多

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

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

allowUnsafeLegacyRenegotiation

允许不安全的传统的TLS重新协商,它有可能允许暴露用户给CVE-2009-3555(处理会话重协商过程中TLS实现存在错误,允许通过中间人攻击,注入任意明文到已存在的TLS会话中。)的情况发生。如果没有指定,默认设置为false。此属性只对不支持RFC 5746(表明伪密码套件TLS_EMPTY_RENEGOTIATION_INFO_SCSV的存在)的JVM有用。JRE / JDK 6update 22起,这是可用的。支持RFC 5746的重新谈判-包括支持不安全的传统重新谈判-是由JVM配置控制的。

ciphers

逗号分隔的这个套接字被允许使用的加密算法列表。默认情况下,在JVM的默认密码将被使用。请注意,这通常意味着,弱输出等级的密码将被包含在列表的可用密码中。密码被指定使用JSSE密码的命名约定。特殊值ALL ,将启用所有支持的密码。这将包括许多不安全。ALL仅用于测试目的。

clientAuth

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

clientCertProvider

当客户端证书信息的以表单形式而不是java.security.cert.X509Certificate实例形式提供时,需要转换之后才可以使用,此属性控制哪个JSSE提供者来执行转换。例如,它是关联AJP连接器,HTTP APR 连接器和 org.apache.catalina.valves.SSLValve。如果没有指定,默认的provider 将被使用。

crlFile

用来验证客户端证书的证书吊销列表。如果没有定义,将不核对证书吊销列表来检查客户端证书。

keyAlias

用于做key库中的服务器证书的别名。如果没有指定将使用在key库中读取的第一个key。

keypass

该密码用于访问指定的keystore文件的服务器证书。默认值是“changeit”。

keystoreFile

要加载的服务器证书存放的keystore文件的路径名。默认情况下,该文件的路径名是“ .keystore”,在操作系统中运行Tomcat的用户的home 目录。如果您的keystoreType不需要文件则可以将keystoreFile设置为“”(空字符串)。

keystorePass

该密码用于访问指定的keystore文件。默认值是keypass属性值。

keystoreProvider

被用于服务器证书的keystore 提供者的名称。如果未指定,将选择按优先顺序注册过的提供者列表的第一个支持keystoreType的提供者。

keystoreType

用于服务器证书的keystore文件的类型。如果没有指定,默认值是“JKS”。

sessionCacheSize

保持在session缓存中的SSL会话的数量。使用0到指定一个无大小限制的缓存。如果没有指定,默认值为0。

sessionTimeout

在创建一个SSL会话后它将超时的时间(以秒为单位)。使用0指定无限制超时。如果没有指定,默认为86400(24小时)。

sslEnabledProtocols

使用的SSL协议的列表。如果未指定,则使用JVM的默认设置。

sslImplementationName

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

sslProtocol

使用的SSL协议版本。如果没有指定,默认是“ TLS”。

trustManagerClassName

一个用来验证客户端证书的自定义信任管理类的名称。这个类必须有一个无参数的构造而且必须实现javax.net.ssl.X509TrustManager。如果设置了这个属性,trust store相关属性将被忽略。

trustMaxCertLength

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

truststoreAlgorithm

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

truststoreFile

用来验证客户端证书的trust store文件。默认值是javax.net.ssl.trustStore系统属性。如果既没有此属性又没有默认的系统属性设置,则不配置trust store。

truststorePass

访问trust store的密码。默认值是javax.net.ssl.trustStorePassword系统属性。如果该属性是空的,没有trust store密码将被配置。如果指定了一个无效的trust store密码,将会记录警告,并试图没有密码访问trust store,这将跳过验证trust store的内容。

truststoreProvider

用于服务器证书的truststore提供者的名称。默认值是javax.net.ssl.trustStoreProvider系统属性。如果该属性为空,将使用keystoreProvider作为默认值。如果既没有这个属性,也没有默认的keystoreProvider系统属性,按优先顺序遍历已注册提供者列表,选择使用支持 truststoreType第一个提供者。

truststoreType

用于trust store的key store的类型。默认值是javax.net.ssl.trustStoreType系统属性。如果该属性为空,则keystoreType作为默认值。

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连接器的属性:

属性

描述

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(这是默认值)将强制服务器的密码规则(按照SSLCipherSuite设置),而不允许客户端选择密码。

SSLPassword

用于私有密钥加密的口令短语。如果没有提供“SSLPassword”时,回调函数将提示输入口令短语。

SSLProtocol

可被用来与客户端通信的协议。默认值是all,这是等同的SSLv3 +的TLSv1,其他可接受的值是 SSLv2, SSLv3,TLSv1以及用加号连接起来的三个协议的任意组合。请注意,SSLv2协议 本质上是不安全的。

SSLVerifyClient

向客户端要求证书。默认值是“none”,这意味着客户端将不会有机会提交证书。其他可接受的值包括“optional”,“require”和“optionalNoCA”。

SSLVerifyDepth

客户端证书的最大验证深度。默认值是“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

分享到:
评论

相关推荐

    tomcat 7 最新版本 apache-tomcat-7.0.109

    3. **NIO连接器**:除了传统的BIO连接器,Tomcat 7引入了基于非阻塞I/O的NIO连接器,允许处理更多并发连接,提升系统吞吐量。 4. **改进的管理工具**:Tomcat 7提供了一个增强的管理界面,用户可以通过Web管理...

    taobao-tomcat-7.0.59

    这些定制可能涉及内存管理、线程池、连接器优化、日志系统、安全管理等方面。 在【压缩包子文件的文件名称列表】中,"taobao-tomcat-7.0.59"可能包含了以下组件和目录: 1. `bin`:包含启动和停止Tomcat的脚本,如`...

    apache-tomcat-8.0.zip

    7. **连接器和协议**: - Tomcat 8.0支持HTTP/1.1和部分HTTP/2,`Connector`元素可配置NIO、NIO2和APR(Apache Portable Runtime)等不同的连接器模型。 8. **模块化架构**: - Tomcat 8引入了Catalina、Jasper、...

    apache-tomcat-9.0.54-windows-x64.zip

    10. **连接器与协议**:Tomcat使用Coyote连接器处理HTTP、HTTPS等协议,可以通过修改`server.xml`中的Connector元素进行配置,比如调整最大连接数、超时时间等。 总之,"apache-tomcat-9.0.54-windows-x64.zip"是一...

    tomcat服务器8.0版本 apache-tomcat-8.0.15.zip

    NIO(非阻塞I/O)和APR(Apache Portable Runtime)连接器提供更好的并发性能,使得Tomcat能更好地处理高并发请求。此外,改进的错误报告机制也有助于开发者快速定位问题。 在安全方面,Tomcat 8.0.15包含了一系列...

    apache-tomcat-9.0.37-windows-x64.zip

    9. **性能优化**:Tomcat可以通过调整JVM参数、线程池大小、连接器配置等方式进行性能优化。例如,增加`maxThreads`和`minSpareThreads`可以提高并发处理能力。 10. **故障排查**:当遇到问题时,检查Tomcat的日志...

    tomcat7 32位

    - **连接器**:Tomcat包含多种连接器,用于监听和响应HTTP请求,例如, Coyote连接器是默认的HTTP/1.1连接器。 - **多线程模型**:Tomcat使用基于线程的模型来处理并发请求,提高服务器的效率和响应速度。 - **安全...

    tomcat7和8

    2. **NIO和 APR 改进**:在连接器层,Tomcat 7改进了非阻塞I/O(NIO)支持,并且增强了Apache Portable Runtime (APR)库的集成,以提高性能和稳定性。 3. **更好的管理工具**:提供了更强大的管理和监控工具,如`...

    tomcat-5.5.28和tomcat-6.0.30及配置资料

    2. **修改server.xml**:这是Tomcat的主要配置文件,其中可以定义端口号、连接器、Context等。 3. **设置JAVA_OPTS**:可以在此添加JVM参数,如内存大小(-Xms和-Xmx)和垃圾回收策略。 4. **创建数据源**:如果应用...

    最新版windows apache-tomcat-9.0.38-windows-x64.zip

    在`conf/server.xml`文件中,你可以配置Tomcat的各种设置,如端口号、连接器、虚拟主机等。例如,修改`<Connector>`元素来改变HTTP/HTTPS端口。同时,可以通过`webapps`目录下创建应用的WAR文件或目录来部署Web应用...

    Apache Tomcat8优化说明

    #### 四、特殊功能 ##### 1. HTTP/1.1 和 HTTP/1.0 支持 连接器支持 HTTP/1.1 所需的所有功能,包括持久连接、流水线、期望和分块编码。对于仅支持 HTTP/1.0 的客户端,连接器会自动回退到支持 HTTP/1.0。没有特殊...

    apache-tomcat-7.0.70

    3. NIO(非阻塞I/O)和APR(Apache Portable Runtime)连接器:这两种连接器提供了更高的并发性能,尤其适合高流量网站。 4. 管理工具增强:提供了一个直观的管理界面,可以方便地进行应用部署、监控和管理。 5. ...

    tomcat-connectors-1.2.37-src.tar.gz

    在标题"tomcat-connectors-1.2.37-src.tar.gz"中,我们关注的是Tomcat的连接器组件的源代码版本1.2.37。这个压缩包包含的是未经编译的源码,对于想要理解Tomcat工作原理、进行定制开发或者排查问题的开发者来说,是...

    jakarta-tomcat-5.5.7.zip

    3. **连接器(Connector)**:Tomcat通过不同的连接器与外部世界交互,例如HTTP/1.1连接器,允许它处理HTTP请求并返回响应。 4. **JNDI(Java Naming and Directory Interface)**:提供服务发现和资源管理,允许...

    tomcat-7.0.59

    3. **连接器优化**:Tomcat 7对HTTP连接器进行了优化,提升了性能和稳定性,尤其是在高并发场景下。 4. **安全管理**:7.0.59版本对安全性进行了加强,修复了一些已知的安全漏洞,确保了应用的安全运行环境。 5. *...

    apache-tomcat-7.0.100防攻击版.zip

    2. 高并发调优:Tomcat的性能优化通常涉及到线程池配置、连接器设置和JVM参数调整。高并发调优可能包括增大最大连接数,调整线程池的最小和最大线程数量,以及优化内存分配以减少垃圾收集的频率。此外,也可能采用了...

    apache-tomcat-5.5.15.exe

    在配置Tomcat时,主要涉及修改`conf/server.xml`文件,这是Tomcat的主要配置文件,可以在这里设置端口号、虚拟主机、连接器以及其他服务器行为。例如,更改默认的HTTP监听端口(8080)以避免与其他服务冲突。同时,`...

    tomcat jar 包

    3. **连接器**:如 coyote.jar,实现了不同的协议(如HTTP/1.1)以供Tomcat接收和响应网络请求。 4. **JNDI**:如 Catalina-jndi.jar,提供Java Naming and Directory Interface(JNDI)服务,允许应用查找和绑定...

    Tomcat7集群实现共享session,已配置好。

    标题 "Tomcat7集群实现共享session,已配置好" 暗示了这是一个关于在Tomcat7服务器集群环境中实现session共享的配置实例。在多台Tomcat服务器组成的集群中,session共享是解决用户会话在不同服务器之间无缝切换的...

    apache-tomcat-5.5.23

    Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。它是由Apache软件基金会的...不过,为了获得最新功能和安全改进,建议升级到更现代的Tomcat版本,除非有特殊需求。

Global site tag (gtag.js) - Google Analytics