大家好,今天小编来为大家解答以下的问题,关于详解Apache 和 Tomcat 整合原理、配置方案-apache tomcat安装及配置教程,这个很多人还不知道,现在让我们一起来看看吧!
为什么需要连接Apache和Tomcat?
原因有下面几个:提高静态文件的处理性能
使用Web 服务器进行负载平衡和容错
无缝升级应用程序
[[332848]]
Apache 和 Tomcat整合原理:Apache负责处理HTML静态内容,Tomcat负责处理动态内容
换句话说:Apache是一辆汽车,它可以装一些东西比如HTML等,但不能装水。装水必须有一个水桶(容器),而这个水桶不需要放在卡车上。那么这个桶就是Tomcat。
Apache HTTP Server 与Tomcat 的三种连接方式
JK编译生成mod_jk模块。在apache中加载mod_jk并进行配置。修改tomcat中的配置,使其可以接受mod_jk的转发。编译生成mod_jk.so,然后将其复制到httpd加载模块的默认目录/etc/中。 httpd/模块
yum install httpd-devel -y #编译并生成依赖于apxs的apache扩展。如果没有安装,请先安装。
wgethttp://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gztar-zxftomcat-connectors-1.2.42-src.tar.gzcdtomcat-connectors-1.2。 42-src/native/./configure--with-apxs=/usr/sbin/apxsmakecp./apache-2.0/mod_jk.so/etc/httpd/modules/https://tomcat.apache.org/download-connectors.cgi
JK通过AJP协议与Tomcat服务器通信。 Tomcat 的默认AJP 连接器端口是8009。
JK本身提供了一个监控管理页面jkstatus。通过jkstatus,可以监控JK当前的工作状态,并设置与tomcat的连接,如下图:
图中,JK 配置了两个连接,分别连接到端口8109 和8209。
还可以使用jkstatus的管理功能将JK切换到不同的Tomcat,比如启用s2、禁用s1
JK 的配置最关键的有三个文件,分别是httpd.conf Apache服务器配置文件,用于加载JK模块并指定JK配置文件信息
workers.properties 到Tomcat服务器的连接定义文件
Workers实际上属于Tomcat的链接器(Connector),代表一个Tomcat实例。该实例代表执行servlet程序的某个Web服务器。
例如,我们可以使用服务器,例如apache,将servlet请求转发给Tomcat进程(worker)进行后台处理。
Tomcat 工作线程在名为workers.properties 的属性文件中定义,并且工作线程的描述告诉了如何使用它们。可以通过属性文件为Tomcat Web 服务器插件定义Worker。 (conf/下有一个名为workers.properties的文件,它是可用的Workers属性文件)。
worker.list=以逗号分隔的工人姓名列表
工人.列表=工人1,工人2
启动服务器时,Web服务器插件将实例化名称出现在worker.list属性中的worker,这些是您可以用来映射请求的worker。
Workers的类型对于每个指定的工作人员,都会有几个条目为用户提供有关工作人员本身的附加信息。此信息包括工人的类型以及与其相关的工人的信息。 JK 1.2.5包含以下工人类型:
类型描述
ajp12 该worker知道如何使用ajpv12协议将请求传递给用于外部处理的worker。 ajp13 该工作人员知道如何使用ajpv13 协议将请求传递给用于外部处理的工作人员。 lb 这是一个负载均衡worker;它知道如何在一定的容错范围内提供基于粘性负载的循环。 status 这是一个管理负载平衡的状态工作者。 Sticky_session 指示是否应将具有会话线程ID 的请求发送回同一个Tomcat Worker。 uriworkermap.propertiesURI映射文件,用于指定Tomcat处理哪些URL,配置httpd.conf
接下来,我们在Apache 的conf 目录中创建两个新文件:workers.properties 和uriworkermap.properties。这两个文件的内容大致如下
首先,我们配置了两个ajp13类型的worker,s1和s2,它们指向在同一台服务器上运行的Tomcat的两个不同端口8109和8209。
接下来,我们配置了一个lb类型的worker(意思是负载均衡),它的名字是ZYKJ。这是一个逻辑worker,用于管理前面配置的两个物理连接s1和s2。
最后配置了一个status类型的worker,它是一个用来监控JK本身的模块。
拥有这三个工人还不够。我们还需要告诉JK哪些工人可用,因此有一行配置worker.list=ZYKJ, status。
接下来是URI 映射配置。我们需要指定哪些链接由Tomcat 处理,哪些链接由Apache 直接处理。
所有请求均由ZYKJ 工作器处理,但除少数例外,/jkstatus 请求由状态工作器处理。
感叹号表示后面的URI不应该被JK处理,即Apache直接处理所有图像、css文件、js文件和静态html文本文件。
通过workers.properties和uriworkermap.properties的配置,可以有多种组合来满足我们之前提出的Web网站的要求。
二、http_proxy这里使用Apache自带的mod_proxy模块来使用代理技术连接Tomcat。
http_proxy模式是基于HTTP协议的代理,因此需要Tomcat提供HTTP服务,也就是说必须启用Tomcat的HTTP Connector。一个最简单的配置如下
在这个配置中,我们将所有来自http://localhost的请求代理到http://localhost:8080/,这也是Tomcat的访问地址,除了images、css、js目录之外。我们还可以使用mod_proxy 进行负载平衡。我们看一下下面的配置:
三、ajp_proxyajpproxy连接方法其实和httpproxy方法是一样的,都是mod_proxy提供的功能。配置是一样的,只是将http://替换为ajp://,连接到Tomcat的AJP Connector所在的端口。上面例子的配置可以改为:
使用代理连接方式需要在Apache上加载所需的模块。 mod_proxy相关模块有
mod_proxy.so、modproxyconnect.so、modproxyhttp.so、modproxyftp.so、modproxyajp.so总结与JK 连接方式相比,后两种配置相对简单,在灵活性方面也丝毫不逊色。但就稳定性而言,它并不像JK那样经过验证。如果是在重点互联网网站使用,还是建议使用JK连接方式。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/8048.html
用户评论
这篇文章看起来很详细,刚好我要研究 Apache 和 Tomcat 的集成
有8位网友表示赞同!
终于找到一篇对整合原理和配置方案都做得很全面的文章了!
有14位网友表示赞同!
我刚开始学web服务器,这篇教程应该会很有帮助!
有8位网友表示赞同!
Apache 和 Tomcat 组合起来真方便,这个教程应该可以轻松上手。
有19位网友表示赞同!
学习下 Apache 和 Tomcat 的集成,对以后开发来说应该很有用!
有13位网友表示赞同!
之前一直不知道怎么配置 Apache 和 Tomcat 一起使用,这下终于有了答案!
有20位网友表示赞同!
安装和配置教程都是我最需要的东西! 希望能详细讲解每个步骤。
有18位网友表示赞同!
分享一个文章链接,大家一起学习一下吧!关于 Apache 和 Tomcat 的整合的原理和配置方案都讲的很清楚。
有6位网友表示赞同!
学习新东西总是一件令人兴奋的事,比如Apache 和 Tomcat的整合!
有5位网友表示赞同!
我一直想尝试使用 Apache 和 Tomcat 协同工作,这篇教程刚好可以帮我实现它!
有8位网友表示赞同!
这个标题很有吸引力,感觉讲解十分到位!
有14位网友表示赞同!
对 Web 开发有兴趣的朋友们,一定要看看这篇文章!Apache 和 Tomcat 的整合方法在这里!
有14位网友表示赞同!
我已经学了一些网络服务器基础知识,这篇教程应该能帮助我更深入的了解 Apache 和 Tomcat 的组合使用。
有19位网友表示赞同!
感谢分享这篇文章,我很想了解 Apache 和 Tomcat 的原理和配置方案。
有9位网友表示赞同!
Apache 和 Tomcat 是很多 Web 项目的基础,学习他们的整合方法很重要!
有9位网友表示赞同!
我对 web 开发越来越感兴趣了,希望能学到更多关于 Apache 和 Tomcat 的知识!
有10位网友表示赞同!
我之前一直独立使用 Tomcat,现在想尝试将其与 Apache 整合起来,这篇教程应该能够帮到我!
有14位网友表示赞同!
这篇文章看起来很实用的样子,很适合想要学习 Apache 和 Tomcat 集成的人们。
有6位网友表示赞同!
学习新技术总是充满挑战,但是也会很有乐趣,比如这次学习 Apache 和 Tomcat 的整合!
有11位网友表示赞同!