apache2.0 + tomcat5.5 整合 JK1

2023-10-25 02:32
文章标签 整合 apache2.0 tomcat5.5 jk1

本文主要是介绍apache2.0 + tomcat5.5 整合 JK1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.Apache与Tomcat介绍

Apache是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML处理的能力。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和 其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP 规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。


二.为什么需要整合

整合的最主要原因是为了在现有的硬件条件下提供最大的负载。

如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制;

在测试中,当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache这个web server处理。Apache与Tomcat各司其职,那么服务器的整体效率就能够得到提升。


三.整合的基本原理

作为Apache下面的子项目,Tomcat 与 Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。

在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。


四.安装Apache与Tomcat服务器

操作系统环境:Windows xp home

安装文件:apache-tomcat-6.0.14.exe apache_2.2.6-win32-x86-openssl-0.9.8e.msi mod_jk-apache-2.2.4.so


  到apache 与tomcat 的官方网站上面下载apache 与tomcat,安装apache与tomcat

到http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32下载 mod_jk-apache-2.2.4.so

将mod_jk-apache-2.2.4.so拷贝到apache安装目录下面的modules目录中。

五.修改Tomcat设置

在tomcat的conf目录下建一个workers.properties的文本文件,添加如下配置


workers.tomcat_home="tomcat安装目录"

#让mod_jk模块知道Tomcat的安装路径

workers.java_home="java安装目录"

#让mod_jk模块知道jdk路径

ps="

worker.list=ajp13

#这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。

worker.ajp13.port=8009

#工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009"

worker.ajp13.host=localhost

#Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP

worker.ajp13.type=ajp13

#类型,好像不能改,会出问题

worker.ajp13.lbfactor=1

#负载平衡因子


六.修改Apache设置

修改apache安装目录下conf目录下的httpd.conf,增加如下配置


  LoadModule jk_module modules/mod_jk-apache-2.2.4.so

JkWorkersFile "tomcat安装目录/conf/workers.properties"

 JkLogFile "apache安装目录/logs/mod_jk.log"


JkMount /*.jsp ajp13

JkMount /*.do ajp13

七.整合操作说明

  mod_jk-apache-2.2.4.so相当于是apache与tomcat之间的桥梁一样,所以在apache的配置文件下面加上LoadModule jk_module modules/mod_jk-apache-2.2.4.so 将此模块载入。

JkWorkersFile "tomcat安装目录/conf/workers.properties" 说明了mod_jk-apache-2.2.4.so 如何工作,当出现要转发时,将请求发送到那里进行处理,代表了一系列的工作参数。

JkLogFile "apache安装目录/logs/mod_jk.log" 设定日志的地址。

JkMount 说明了将什么样的URL进行发送到tomcat进行处理。JkMount /*.jsp ajp13 说明了要将jsp请求发到tomcat,JkMount /*.do ajp13说明了要将.do型的servlet发到tomcat进行处理。在实际的分发中,如果servlet命名不带后缀的话,将无法被识别,也就无法进行处理。

八.结束语

在查阅了不少文章之后,我仔细的了解了下这两者进行整合的过程,网上很多文章讲的整合应该不算是真正意义上面的整合,希望此文章能够为正为这些问题苦恼的同行们解决一点小困难……。


注意:书写完JkMount /*.jsp aig13后,需要指定JSP路径的时候需要/应用名/JSP路径名,才能通过apache访问到JSP

这篇关于apache2.0 + tomcat5.5 整合 JK1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279450

相关文章

RabbitMQ使用及与spring boot整合

1.MQ   消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法   应用:不同进程Process/线程Thread之间通信   比较流行的中间件:     ActiveMQ     RabbitMQ(非常重量级,更适合于企业级的开发)     Kafka(高吞吐量的分布式发布订阅消息系统)     RocketMQ   在高并发、可靠性、成熟度等

springboot整合swagger2之最佳实践

来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 SpringBoot集成 pom <!--swagge

springboot 整合swagger

没有多余废话,就是干 spring-boot 2.7.8 springfox-boot-starter 3.0.0 结构 POM.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/

uniapp,vite整合windicss

官方文档:https://weapp-tw.icebreaker.top/docs/quick-start/frameworks/hbuilderx 安装: npm i -D tailwindcss postcss autoprefixer# 初始化 tailwind.config.js 文件npx tailwindcss initnpm i -D weapp-tailwindcss# 假

Spring Cloud整合Seata实现分布式事务

文章目录 1.Seata1.1 官网1.2 下载1.3 通过安装包运行seata1.3.1 解压seata-server-1.3.0.zip1.3.2 修改 conf/file.conf 配置文件1.3.3 修改conf/registry.conf配置文件1.3.4 添加seata配置信息到nacos1.3.5 配置seata服务端数据库表结构1.3.6 启动seata 2.Spring

在项目SSH整合时,启动测试时报的警告!

一、tomcat 运行过程中提示: 22:11:07,082 [main] WARN  DTDEntityResolver : recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer

spring boot实战(番外篇)整合RabbitMQ

前言 最近几篇文章将围绕消息中间件RabbitMQ展开,对于RabbitMQ基本概念这里不阐述,主要讲解RabbitMQ的基本用法、Java客户端API介绍、spring Boot与RabbitMQ整合、 Spring Boot与RabbitMQ整合源码分析。   RabbitMQ安装   在使用消息中间件RabbitMQ之前就是安装RabbitMQ。   安装erlang:yum i

Spring之——整合Redis序列化方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。 Spring Data JPA为我们提供了下面的Serializ

Struts2和Spring整合中出现的问题

今天做了一个Struts2和Spring整合的练习,中间出了一点问题,贴出来供其它人参考。(该文章写于2010年) 代码写好后启动Tomcat服务器时报错: 严重: Exception starting filter struts2java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeExceptio

Spring整合FreeMarker本地化动态设置

Spring整合FreeMarker进行国际化的过程很简单,将spring-webmvc里的org/springframework/web/servlet/view/freemarker下的spring.ftl include到各个要国际化的ftl文件里就行了,比如将这个spring.ftl复制在ftl文件目录的common下,可以这样直接在ftl里include进来 <#import "