龙空技术网

一文看懂Tomcat HTTP协议与AJP协议之间的区别与联系

波波说运维 178

前言:

现在姐妹们对“tomcat用的什么协议”可能比较关心,兄弟们都需要了解一些“tomcat用的什么协议”的相关知识。那么小编同时在网上搜集了一些有关“tomcat用的什么协议””的相关知识,希望朋友们能喜欢,兄弟们快快来了解一下吧!

概述

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服务器的两种方式

1、HTTP Connector:

拥有这个连接器,Tomcat才能成为一个web服务器,但还可处理Servlet和jsp。

2、AJP Connector:

AJP连接器可以通过AJP协议和另一个web容器进行交互。

Connector的配置

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

1、BIO HTTP/1.1 Connector配置

一个典型的配置如下:

<!--Code highlighting produced by Actipro CodeHighlighter (freeware); connectionTimeout=”20000” redirectPort=”8443”

其它一些重要属性如下:

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

如果是SSL配置,如下:

<!--Code highlighting produced by Actipro CodeHighlighter (freeware);maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol = "TLS" address="0.0.0.0" keystoreFile="E:/java/jonas-full-5.1.0-RC3/conf/keystore.jks" keystorePass="changeit" />

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

2、NIO HTTP/1.1 Connector配置

<!--Code highlighting produced by Actipro CodeHighlighter (freeware);<Connector port=”8080” protocol=”org.apache.coyote.http11.Http11NioProtocol”  maxThreads=”150” connectionTimeout=”20000” redirectPort=”8443”

3、Native APR Connector配置

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

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

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

<!--Code highlighting produced by Actipro CodeHighlighter (freeware);<!--APR library loader. Documentation at /docs/apr.html --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><!-- 配置使用APR connector --》<Connector port=”8080” protocol=”org.apache.coyote.http11.Http11AprProtocol” maxThreads=”150” connectionTimeout=”20000” redirectPort=”8443”
HTTP Connector和AJP Connector

HTTP:

AJP:

第一个连接器监听7039(默认是8080)端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

标签: #tomcat用的什么协议 #apachetomcat7039