热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache+tomcat的整合安装配置

为什么要做这个整合呢?当然,首先想到是就是Apache和Tomcat的区别。正因为有区别,有各自的优缺点才需要整合,取二者所长,弃二者所短。Apache和Tomcat都可以在他们的官网下载:http://www.apache.org那么首先就来说下Apache和Tomcat的区别:Apache只是一

为什么要做这个整合呢?当然,首先想到是就是Apache和Tomcat的区别。正因为有区别,有各自的优缺点才需要整合,取二者所长,弃二者所短。

Apache和Tomcat都可以在他们的官网下载: http://www.apache.org

那么首先就来说下Apache和Tomcat的区别:

Apache只是一个Web服务器,可以作为独立的web服务器来运行,不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。

Tomcat也可以作为独立的web服务器来运行。但Tomcat也是应用(java)服务器,它只是一个Servlet容器。

由于Apache解释静态页面要比tomcat快速而且稳定, 基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;

并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面;

Apache+Tomcat整合的好处:

1. Apache主要用来解析静态文本,如html,tomcat虽然也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率;

2. Tomcat用来解析jsp,servlet等,所有的客户请求首先会发送到Apache,如果请求是静态文本则由apache解析,并把结果返回给客户端,如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作,实现负载均衡,提高系统的性能!而且因为JSP是服务器端解释代码的,这样整合可以减少Tomcat的服务开销。

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整合的步骤(结合我自己的情况,为大家解说一下整合的过程。)

1.准备工作:

2.软件的安装

软件的安装顺序可以适当调整,但是JDK(JRE)一定要在Tomcat之前安装。安装JK:把 mod_jk.so 拷贝到 D:\Program Files\Apache2.2\modules 下(这是我的Apache安装目录)。至于其他软件的安装过程我便省略了。

3.服务器的配置

   1)bin\startup.bat  :

set CATALINA_BASE = D:\Program Files\tomcat
set CATALINA_HOME = D:\Program Files\tomcat
set CLASSPATH = %CLASSPATH %;%CATALINA_HOME%\lib\servlet-api.jar

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

#让mod_jk模块知道Tomcat的安装路径 
workers.tomcat_home=D:\tools\apache-tomcat-6.0.32
#让mod_jk模块知道jre的位置
workers.java_home=C:\Program Files\Java\jre1.5.0_18
ps=\
#模块版本,这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。
worker.list=ajp13
#工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009" 
worker.ajp13.port=8009 
#Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP
worker.ajp13.host=localhost
#通讯协议类型,好像不能改,会出问题 
worker.ajp13.type=ajp13 
#负载平衡因子
worker.ajp13.lbfactor=1

           3)tomcat的conf目录下,修改文件server.xml。配置在中间加入以下语句以修改其默认的目录:

配置Apache:打开D:\Program Files\Apache2.2\conf下的httpd.conf。

       1)在最后加入下面这段代码

#此处mod_jk的文件为你下载的文件
LoadModule jk_module modules/mod_jk.so
#指定tomcat监听配置文件地址
    JkWorkersFile "D:\tools\apache-tomcat-6.0.32\conf\workers.properties"
#指定日志存放位置;以及日志级别
JkLogFile "D:\tools\apache-tomcat-6.0.32\logs\mod_jk2.log" 
JkLogLevel info
#add mod_jk(tomcat) end
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /servlet/* ajp13 
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.jsp ajp13 
#让Apache支持对.do传送,用以Tomcat解析
JkMount /*.do ajp13 

               2)此外需要修改文件中的相关配置。(可以在文件中找到原有的配置)

 #站点项目所在路径,应与tomcat中的目录设置相同,据说以上两个必须同时设置才可以生效,没有试过不同的时候会有什么情况
ServerName localhost
DocumentRoot "E:/wwwroot"

DirectoryIndex index.html index.htm index.jsp

  4.修改完所有的配置,那么现在可以重新启动Apache和Tomcat.

在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功

希望此文能够对大家有所帮助。

============================补充的说明============================

经常可以使用“Apache负载均衡+Tomcat集群”的模式来提高系统整体性能。
1 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。
2为系统设定 Session 超时时间,包括 Apache 和 tomcat
3为系统屏蔽文件列表,包括 Apache 和 tomcat
注:本例程以一台机器为例子,即同一台机器上装一个apache和4个Tomcat。
Apache在前面最为http转发的“关口”,然后将访问负载均衡到后面的Tomcat服务器集群,这样就实现了负载均衡。
加之客户端缓存(COOKIE)和服务器端缓存(Session)。然后注意一些其他编程习惯和算法的应用。你的Web系统的整体性能就会得到比较好的保障。


推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • Canopy环境安装与使用指南
    《利用Python进行数据分析》一书推荐使用EPDFree版本的环境,然而随着技术的发展,目前更多人倾向于使用Canopy。本文将详细介绍Canopy的安装及使用方法。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • Tomcat SSL 配置指南
    本文详细介绍了如何在 Tomcat 中配置 SSL,以确保 Web 应用的安全性。通过正确的配置,可以启用 HTTPS 协议并保护数据传输的安全。 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
author-avatar
天蝎騎著豬狂奔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有