详解Tomcat HTTP协议与AJP协议

网络 网络管理
在实际应用中,常常把Tomcat与其他HTTP服务器集成。对于不支持Servlet/JSP的HTTP服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。

Tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。

因此在实际应用中,常常把Tomcat与其他HTTP服务器集成。对于不支持Servlet/JSP的HTTP服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。

当Tomcat与其他HTTP服务器集成时,Tomcat服务器的工作模式通常为进程外的Servlet容器,Tomcat服务器与其他HTTP服务器之间通过专门的插件来通信。

Tomcat在server.xml中配置了两种连接器。

相关概念

Web客户访问Tomcat服务器的两种方式

  • HTTP Connector:拥有这个连接器,Tomcat才能成为一个web服务器,但还可处理Servlet和jsp。
  • AJP Connector:AJP连接器可以通过AJP协议和另一个web容器进行交互。

Connector的配置

对Connector的配置位于conf/server.xml文件中。

1. BIO HTTP/1.1 Connector配置

一个典型的配置如下:

  1. <!-- 
  2. Code highlighting produced by Actipro CodeHighlighter (freeware) 
  3. http://www.CodeHighlighter.com/ 
  4. --> connectionTimeout=”20000” redirectPort=”8443” 

其它一些重要属性如下:

  • acceptCount : 接受连接request的最大连接数目,默认值是10
  • address : 绑定IP地址,如果不绑定,默认将绑定任何IP地址
  • allowTrace : 如果是true,将允许TRACE HTTP方法
  • compressibleMimeTypes : 各个mimeType, 以逗号分隔,如text/html,text/xml
  • compression : 如果带宽有限的话,可以用GZIP压缩
  • connectionTimeout : 超时时间,默认为60000ms (60s)
  • maxKeepAliveRequest : 默认值是100
  • maxThreads : 处理请求的Connector的线程数目,默认值为200

如果是SSL配置,如下:

  1. <!-- 
  2. Code highlighting produced by Actipro CodeHighlighter (freeware) 
  3. http://www.CodeHighlighter.com/ 
  4. -->maxThreads="150" scheme="https" secure="true" 
  5.  clientAuth="false" sslProtocol = "TLS" 
  6.  address="0.0.0.0" 
  7.  keystoreFile="E:/java/jonas-full-5.1.0-RC3/conf/keystore.jks" 
  8.  keystorePass="changeit" /> 

其中,keystoreFile为证书位置,keystorePass为证书密码

2. NIO HTTP/1.1 Connector配置

  1. <!-- 
  2. Code highlighting produced by Actipro CodeHighlighter (freeware) 
  3. http://www.CodeHighlighter.com/ 
  4. --><Connector port=”8080” protocol=”org.apache.coyote.http11.Http11NioProtocol”  
  5.  maxThreads=”150” connectionTimeout=”20000” redirectPort=”8443” 

3. Native APR Connector配置

ARP是用C/C++写的,对静态资源(HTML,图片等)进行了优化。所以要下载本地库

tcnative-1.dll与openssl.exe,将其放在%tomcat%\bin目录下。

在server.xml中要配置一个Listener:

  1. <!-- 
  2. Code highlighting produced by Actipro CodeHighlighter (freeware) 
  3. http://www.CodeHighlighter.com/ 
  4. --><!--APR library loader. Documentation at /docs/apr.html -->  
  5. <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> 
  6. <!-- 配置使用APR connector --》 
  7. <Connector port=”8080” protocol=”org.apache.coyote.http11.Http11AprProtocol”  
  8. maxThreads=”150” connectionTimeout=”20000” redirectPort=”8443” 

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2019-04-23 10:48:55

HTTPTomcat服务器

2014-10-22 09:36:41

TCPIP

2014-06-05 10:21:29

HTTP

2019-04-02 08:36:12

2014-06-18 09:25:07

HTTP

2014-11-13 10:57:03

http协议

2013-07-09 14:36:24

2017-05-26 10:35:13

前端HTTP

2010-09-28 09:34:28

2021-04-14 14:16:58

HttpHttp协议网络协议

2011-08-09 14:08:51

iPhoneHTTP请求协议

2020-06-17 21:39:11

HTTP协议服务器

2021-10-18 08:35:50

HTTPSHTTP协议

2022-03-09 18:54:30

HTTP缓存协议cache

2012-09-24 14:09:31

C#网络协议C

2021-05-07 09:17:21

HTTPTCP协议

2014-11-03 09:19:00

DNS

2014-09-22 09:15:03

TCPIP

2022-10-08 00:00:00

websocket协议HTTP

2014-07-01 09:46:30

HTTP
点赞
收藏

51CTO技术栈公众号