Apache与Tomcat三种连接方式JK、http_proxy、ajp_proxy

Apache 1865℃

为什么要让Apache与Tomcat之间进行连接?事实上Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,也可以改为80。既然Tomcat本身已经可以提供动态加静态web服务,为什么还要引入Apache或者其他的一些专门的HTTP服务器呢?原因是tomcat对静态页面并发处理能力较差,通过与apache链接后可以实现:提升对静态文件的处理性能、实现负载均衡集群、无缝的升级应用程序。

JK

这是最常见的方式,你可以在网上找到很多关于配置JK的网页,当然最全的还是其官方所提供的文档。JK本身有两个版本分别是1和2,而版本2不是最新版,是一个分支,早已经废弃了,以后不再有新版本的推出了,所以建议你采用版本1。

JK是通过AJP协议与Tomcat服务器进行通讯的,Tomcat默认的AJPConnector的端口是8009。JK本身提供了一个监控以及管理的页面jkstatus,通过jkstatus可以监控JK目前的工作状态以及对到tomcat的连接进行设置。

AJP(ApacheJServProtocol)是定向包(面向包)协议。采用二进制形式代替文本形式,以提高性能。WEB服务器通过TCP连接SERVLET容器。WebServer一般维持和WebContainer的多个TCPConnecions,即TCP连接池,多个request/respons循环重用同一个Connection。但是当Connection被分配(Assigned)到某个请求时,该请求完成之前,其他请求不得使用该连接。

http_proxy

这是利用Apache自带的mod_proxy模块使用代理技术来连接Tomcat。在配置之前请确保是否使用的是2.2.x版本的Apache服务器。因为2.2.x版本对这个模块进行了重写,大大的增强了其功能和稳定性。http_proxy模式是基于HTTP协议的代理,因此它要求Tomcat必须提供HTTP服务,也就是说必须启用Tomcat的HTTP Connector。

ajp_proxy

ajp_proxy连接方式也是由mod_proxy模块所提供的功能。连接的是Tomcat的AJP Connector所在的端口。

三者比较

相对于JK的连接方式,http_proxy和ajp_proxy在配置上是比较简单的,灵活性方面也一点都不逊色。但就稳定性而言就不像JK这样久经考验,因此,如果是应用于关键的互联网网站,还是建议采用JK的连接方式。

转载请注明:零五宝典 » Apache与Tomcat三种连接方式JK、http_proxy、ajp_proxy