热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

配置Apache与tomcat实现分布式应用部署环境

一:原理tomcat是一个web应用服务器,能够解析静态文件和动态文件(如:html、jsp、servlet等);apache是一个webserver,能够解析静态文件。Tomcat作为一个独立的web服务器是可以使用的,但是它对静态文件的解析能力不如apache,所以就产生现在的web应用的
一:原理

tomcat是一个web应用服务器,能够解析静态文件和动态文件(如:html、jsp、servlet等);apache是一个web server,能够解析静态文件。Tomcat作为一个独立的web服务器是可以使用的,但是它对静态文件的解析能力不如apache,所以就产生现在的web应用的分布式部署,apache+tomcat。

两者之间的通信通过workers配置(由tomcat使用Server.xml中的Connector标签定义端口port和协议protocol,workers.properties文件中定义端口、协议、tomcat服务器地址);由mod_jk模块负责两者通信的处理。通信协议有很多,其中jk2已经被抛弃了,现在就用jk就好了。

整个过程其实就是让apache的httpd.conf文件调用mod_jk.conf,mod_jk.conf调用workers.properties,最后配置虚拟主机。

二:文件说明

mod_jk.conf

主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。

worker.properties

定义worker的参数,主要是连接tomcat主机的地址和端口信息。如果Tomcat与apache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。

三:软件版本说明

Jdk1.4.2_08(1.5也可以,把JRE装在JDK目录下)

tomcat 5.0.、5.5

apache apache_2.0.55-win32-x86-no_ssl.msi

mod_jk_1.2.6_2.0.50.dll(要根据apache版本确认)

把上面所有组件都安装到D:\Server目录下,这样也方便日常管理配置和将来移植到别的服务器上去

JAVA_HOME java安装路径

TOMCAT_HOME tomcat安装路径

APACHE_HOME apache安装路径

四:操作步骤 4.1软件安装

    按顺序安装Jdk1.5、tomcat、apache

    可能遇到的问题

问题1: 在解析JSP页面时,提示无法找到java compiler

请拷贝 j2sdk\lib\tools.jar 到 tomcat\common\lib下面。

使用tomcat作为service启动后总是这样,当然用startup.bat脚本启动倒是完全正常。主要原因分析起来是以service方式启动的Tomcat无法读取JAVA_HOME 和CLASS_PATH等环境变量。

问题2:如何解决通过服务方式启动tomcat时log中提示ZoneInfo:d:\server\j2sdk\lib\zi\ZoneInfoMappings(系统找不到指定的路径。)

从d:\server\j2sdk\jre\lib目录拷贝所有文件放到 d:\server\j2sdk\lib\ ,jre\lib 中的文件和j2sdk\lib\ 中的文件没有一个重复的,不用担心会覆盖掉j2sdk\lib 中原有的任何文件。

4.2加入mod_jk连接模块

拷贝mod_jk_1.2.6_2.0.50.dll到APACHE_HOME\apache2\modules\文件夹下,并重命名为mod_jk.dll

4.3修改apache配置文件

    为了保持httpd.conf文件的简洁,把jk模块的配置放到单独的文件中来,就在httpd.conf中增加一行调用include “D:\server\Apache2\conf\mod_jk.conf”

4.4配置mod_jk.conf

下面是mod_jk.conf的文件内容,根据项目实际情况进行修改(照做就可以了)

# Load mod_jk module

LoadModule jk_module modules/mod_jk.dll

# Where to find workers.properties

JkWorkersFile conf/workers.properties

# Where to put jk logs

JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel info

# Select the log format

#JkLogStampFormat \"[%a %b %d %H:%M:%S %Y] \"

# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format

#JkRequestLogFormat \"%w %V %T\"

# Send servlet for context /examples to worker named ajp13

#JkMount /servlet/* ajp13

# Send JSPs for context /examples to worker named ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

JkMount /*/*.do ajp13

上面这一行我们设置了了 /*.jsp ajp13 就是说把所有.jsp结尾的文件都由ajp13这个worker交给tomcat处理了

4.5配置apache2\conf\workers.properties

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost  #本机,若上面Tomcat主机不为localhost,作相应修改

worker.ajp13.type=ajp13  #类型

worker.ajp13.lbfactor=1  #代理数,不用修改

4.6虚拟主机的配置

举例配置2个vhost网站 一个是 localhost ,另一个是 www.ok.com
当然www.ok.com 是虚拟的,本地测试时,应该修改系统中的hosts文件,添加一行 127.0.0.1  www.ok.com

NameVirtualHost *:80

ServerAdmin webmaster@localhost

DocumentRoot "C:/tomcat-5.5.9/webapps/jsp-examples/"

ServerName localhost

ErrorLog logs/localhost-error_log

CustomLog logs/localhost-access_log common

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot D:/projectTest/

ServerName 192.168.5.220

ErrorLog logs/ok.com-error_log

CustomLog logs/ok.com-access_log common

           # 这样我可以看到apache服务器状态

SetHandler server-status

#Order deny,allow

#Deny from all

#Allow from localhost

#Allow from 192.168.5.80

4.7虚拟主机的配置

添加新的www.ok.com 虚拟主机,在tomcat安装路径\conf\server.xml的最后,找到段,改为

五:结语

   因tomcat、apache都是开源软件,对版本搭配要求比较严格,因此一定要注意版本。


推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
author-avatar
merlion-p
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有