biGpython

生亦何欢,死亦何苦? 予我長袖,我必善舞!

导航

Apache与Tomcat整合笔记

1.apache服务器安装过程中的一个错误:配置文件 

#下面一行如果不注释掉 无法启动
#ServerAdmin

http://www.linuxidc.com/Linux/2010-05/26203.htm

2.java环境变量设置  java_home:指向java目录

          classpath  .;%JAVA_HOME%lib\tools.jar

          path %JAVA_HOME%\bin;

 tomcat环境变量设置:在java基础之上 增加一个catalina_home 指向tomcat文件夹 

            还有一个:%CATALINA_HOME%\bin;

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

4. httpd.conf文件中加入如下

#TOMCAT整合开始
#连接模块引入
LoadModule jk_module modules/mod_jk.so
#指定tomcat信息
JkWorkersFile "D:\Apache Software Foundation\apache-tomcat-6.0.33\conf\workers.properties"
#以下部分指定do和jsp 通过ajp13协议过滤,即用tomcat进行处理
JkMount /*.do ajp13
JkMount /*.jsp ajp13
#TOMCAT整合结束

workers.properties文件内容:

workers.tomcat_home="D:\Apache Software Foundation\apache-tomcat-6.0.33"
workers.java_home="D:\Program Files\Java\jdk1.6.0_29"
ps=\
wk.list=ajp13
wk.ajp13.port=8009 //协议端口,apahce与tomcat通信的端口,随意一个未被占用的端口即可
wk.ajp13.host=localhost
wk.ajp13.type=ajp13
wk.ajp13.lbfactor=50
wk.ajp13.cachesize=10
wk.ajp13.cache_timeout=600
wk.ajp13.socket_keepalive=1
wk.ajp13.socket_timeout=300

http://blog.sina.com.cn/s/blog_461c24d50100g4fw.html

http://www.cnblogs.com/itech/archive/2009/08/18/1548723.html 只做参考

注意http.conf中的JkLogFile "D:\Apache Software Foundation\Apache2.2\logs\mod_jk.log" 引号不可漏 否则无法启动 报错

5. 有一个关键点:pache与tomcat对应的统一根目录设置:在httpd.conf中设置好documentroot和Directory根目录以后,要在tomcat的server.xml中

在<host>标签下增加一个节点:其中docBase中要与httpd.conf中的根目录一致!! 而paht属性设置\,可以从http://localhost:8088直接访问tomcat主页。


<Context path="\" docBase="D:\Apache Software Foundation\apache-tomcat-6.0.33\webapps"  reloadable="true" crossContext="true"/>

验证方法:先启动tomcat在启动apache,两者可以同时访问根目录下的文件。

  验证方式:停掉tomcat,然后访问静态页面,如果2者都能访问,则说明配置成功。动态的此时不可访问。

apache与tomcat的主要区别:http://new-restart.iteye.com/blog/1136708

6.windows下tomcat 发布多个web项目(多个域名,同一ip)

  <host>标签中指定 域名,<context>标签中指定项目路径,即

  <Host name=" www.google.cn " debug="0" appBase="webapps"  unpackWARs="true"  xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" docBase="D:\Tomcat5\webapps\host1"  reloadable="true"   caseSensitive="false"   debug="0"></Context>
   </Host>

    <Host name=" www.youku.com " debug="0" appBase="webapps"
      unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false">  
         <Context path="" docBase="D:\Tomcat5\webapps\host2" reloadable="true"   caseSensitive="false"   debug="0"></Context>
   </Host>

  //该context标签中的,的docBase定义的是tomcat项目的根目录。

  //httpd.conf中的根目录仍然定义的是apache的根目录,互不影响,最好设置成一样的。

  http://lionelf.iteye.com/blog/890438

7. apache+tomcat的优缺点:

那什么情况下需要使用Apache+Tomcat呢?来分析一下

1、负载均衡

如果你需要负载均衡的话,Apache+Tomcat+modjk是一个选择,利用它,你可以把应用服务器拆分成多个服务器,比如:可以拆分成:

(1)、管理端应用服务器

(2)、客户端应用服务器

(3)、报表、打印服务器放在一台机器上

(4)、批量操作服务器放在一个地方(比如大量的对账调账)

(5)、甚至可以给每批客户一台服务器,比如不同的省

2、各种各样的web server功能

大家都知道,Apache有无数的mod,这些mod提供着各种各样丰富的web功能,如果你需要这些功能,Apache就是必不可少的选择

比如:

(1)虚拟主机

同一个ip要使用多个不同的域名,那么Apache来帮你完成这个问题吧

(2)urlrewrite

3、快速相应性能

在快速响应上的优势Apache可以说远远超过其它服务器,一台Apache只做转发的话可以拖着无数的Tomcat服务器来跑

4、对二进制文件的处理上

对于.jpg .css .js .html等的处理上,Apache的性能远超过Tomcat,可以把这些都配置给Apache

5、对于请求的排队上

6、对于资源的占用上。

这里举个例子,比如应用服务开发用了open-session-in-view,那么在如果只用Tomcat,在处理完成后要给客户端发送 response的内容,如果网络很慢,这样应用服务器的session就会一直不关闭,一直等着,容易造成数据库connection过多,造成问题。相应的还有很多类似的资源占用问题

如果用Apache+Tomcat,因为Apache和Tomcat在同一个局域网,之间很快,所有的requese和response都是 Apache和Tomcat交互,这部门不会出现上边的问题,而和最终客户都是Apache和最终用户,Apache不会占用这些资源,不会造成这类问题。

以上是一些常见的原因。

posted on 2011-10-25 15:17  biGpython  阅读(400)  评论(0编辑  收藏  举报