您的位置:首页 > 运维架构 > Tomcat

Apache 和tomcat 的环境搭建

2015-09-11 09:56 471 查看
--------
此处接上文配置的ssl的环境  这个现在有问题 待解决 勿看


以下此为大神的转载./帮了不少忙 恩

http://blog.csdn.net/stefyue/article/details/6918542

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

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

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

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

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

Apache+Tomcat整合的好处:

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

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返回给客户。

自己实际操作

java的环境百度 /没错 我就是在偷懒

配置Tomcat

set CATALINA_BASE = C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\

set CATALINA_HOME = C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\

set CLASSPATH = %CLASSPATH %;%CATALINA_HOME%\lib\servlet-api.jar

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

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

workers.tomcat_home= C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\

//让mod_jk模块知道jre的位置

workers.java_home=C:\Program Files\Java\jre1.7.0_18

//模块版本,这里是关键,名字要和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


此处有小问题 上述配置是一个电脑上配置一个apache和一个tomcat 如果是不同的电脑上配置不同的tomcat来整合一个集群 就是如下的设置了 先挖一个坑 以后填 此处只是稍微提一下 因为还有其他的配置

worker.list = controller,tomcat1,tomcat2,tomcat3

worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1

worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

worker.tomcat3.port=13009
worker.tomcat3.host=192.168.0.80 //在我的虚拟机中的,可以算远程的吧
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1

controller,负载均衡控制器
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
worker.controller.sticky_session=1


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

<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>


配置Apache:打开c:\Apache2.2\conf下的httpd.conf。

//在最后加入下面这
//此处mod_jk的文件为你下载的文件
LoadModule jk_module modules/mod_jk.so
//指定tomcat监听配置文件地址
JkWorkersFile "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf\workers.properties"
//指定日志存放位置;以及日志级别
JkLogFile "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\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  //(此处就是一个自定义的 如果多tomcat的controll 需要对应  另外开贴说明)
//外需要修改文件中的相关配置。(可以在文件中找到原有的配置)


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

<Directory "${SRVROOT}/htdocs">
ServerName localhost //此处我用的是上篇文章中的那个servername


//这里是系统目录默认的储存根目录 因为已经在前文中配置好了localhost 所以这里不用配置 直接写localhost就可以 另外apache服务器指的就是安装的apache 时候利用了系统的IP和部分资源来搭建

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

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

在这遇到了apche无法重启的问题 一看是workers.properties的文件放错了 要放在tomcat的文件中 因为就是启动apache去读取tomcat的这个配置文件来加载jk模块连接apache和tomcat的

经常可以使用“Apache负载均衡+Tomcat集群”的模式来提高系统整体性能。

1 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。

2为系统设定 Session 超时时间,包括 Apache 和 tomcat

3为系统屏蔽文件列表,包括 Apache 和 tomcat

注:本例程以一台机器为例子,即同一台机器上装一个apache和4个Tomcat。

Apache在前面最为http转发的“关口”,然后将访问负载均衡到后面的Tomcat服务器集群,这样就实现了负载均衡。

加之客户端缓存(Cookie)和服务器端缓存(Session)。然后注意一些其他编程习惯和算法的应用。你的Web系统的整体性能就会得到比较好的保障。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat apache web服务器