2014-03-03 13:43:01
来 源
ITJS.CN
Apache
本文介绍Apache与tomcat的整合安装与配置方法,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。
一.首先还是引用一个别人的帖子,然后做一些说明,不对的地方还请各位指正。

二.

  单独使用Tomcat做JSP服务器,在工作效率上会有问题,并且所能承受的最大并发连接数也有一定的限制;经测试,当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在就有了一些“整合”解决方案:

  将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache,IIS等这些web server处理,由此大大节省了tomcat有限的工作“线程”。

  当然,使用IBM Websphere、BEA Weblogic、JBOSS等这些 J2EE服务器会是一个更好的解决方案,但只有应用EJB才会发挥这些J2EE服务器的强大功能。

  所以在这里,推荐Apache + Tomcat的“黄金组合”。在网上查找了一些资料,然后自己动手实验,折腾了近1个小时,终于搞掂!现将具体过程总结如下,希望对大家能有所帮助:

我的运行环境:Windows2k Server SP4 + J2SDK1.42 + Apache2.049 + Tomcat5.019 + SQL server2k

  **准备软件:

  1、Apache 2.0.49   2、Tomcat 5.0.19   3、Jk2连接器(mod_jk2.so)

**开始安装:(这里的安装路径是任选的,只要视你的实际情况略做修改即可)

  Apache安装在H:ApacheApache2 下,监听端口 80;Tomcat在H:ApacheTomcat5.0 下,监听端口 8080;

  两者都以windows NT服务进行安装。

  将mod_jk2.so复制到H:ApacheApache2modules目录下:

  1.编辑H:ApacheApache2confhttpd.conf文件,在LoadModule那一段代码中添加:

  LoadModule jk2_module modules/mod_jk2.so

  2.将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示;

  3.在“虚拟主机配置代码段”中添加:(此段配置可以根据你的实际情况进行修改)

  <VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT"

ServerName www.sdg.com

ErrorLog logs/sdg.com-error_log

CustomLog logs/sdg.com-access_log common

  </VirtualHost>

**编写workers2.properties文件并加入H:ApacheApache2conf目录,内容如下:

  [shm] 

  file=${serverRoot}/logs/shm.file 

  size=1048576 

  #The socket channel

  [channel.socket:localhost:8009] 

  port=8009 

  host=127.0.0.1 

  #define the worker 

  [ajp13:localhost:8009] 

  channel=channel.socket:localhost:8009 

  #uri mapping 

  [uri:/*.jsp] 

  worker=ajp13:localhost:8009

**由于tomcat5.019安装时已经有了 jk2.properties 文件,所以在这里就不用自己写了。(或许这就是高版本的好处之一吧 *^_^*)

**编写一个普通的html文件(index.html)与一个jsp文件(test.jsp),放在H:ApacheTomcat5.0webappsROOT 下;现在最好重新启动一下计算机。

  重新启动以后,启动apache和tomcat,http://www.server110.com该是和http://www.server110.com:8080一样的了---显示的都是index.html;

  现在可以测试一下 test.jsp 了,http://www.server110.com/test.jsp,怎么样,顺利通过了吧?

**下面测试Tomcat连接池部分,将网站的所有文件(html + jsp + javaBean + servlet)拷贝至H:ApacheTomcat5.0webappsROOT 下,配置tomcat的server.xml文件,添加连接池。在我这儿,经过测试,所有的功能部分都能正常工作。

下载:mod_jk2.so

*********后**********记*************************

  1. 如果你的主页是JSP页面,你还需要配置一项:

DirectoryIndex index.html index.html.var index.jsp

加上index.jsp就可以了 *^_^* 

2. warning:

  ------------**整合以后,工作一直正常,但偶然打开了Apache的 error.log文件,被吓出一身冷汗~~~~有N多的错误,有一行最显眼儿:

  No such channel port:localhost:8019

.....Ajp13xx failed!

再仔细看了一下 worker2.properties 文件,发现里面有一项设置:

[ajp13:localhost:8019] 

channel=channel.socket:localhost:8009 

错误指的8019端口就是这个了~ 随即将 8019 改为 8009~ 现在再也没出现这个问题了~看来网上的资料有些时候不一定是最准确的......(可能是笔误吧~~~) :P

**---由此给大家带的不便,我深表歉意! 

3. 又发现一个配置上的“小问题”----

虚拟主机有一项配置:DocumentRoot项,如果按照

DocumentRoot "H:ApacheTomcat5.0webappsROOT" 配置的话,主机也能正常工作,但如果这时打开 logs/sdg.com-error_log 文件,就会发现有一行错误提示:

**warning: "H:ApacheTomcat5.0webappsROOT" doesn't exist!

经尝试,若改成:

DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT"

则完全没有任何警告信息出现在 error_log文件中~

三.我自己的配置及重要参数说明(winxp+tomcat5.0.14+apache2.0.52):

   tomcat安装目录:F:/Tomcat,在webapps有一个应用项目yedongshu

   apache安装目录:F:/Apache2052

我的workers2.properties:

[shm]

file=${serverRoot}/logs/shm.file

size=1048576

#The socket channel

[channel.socket:localhost:8009]

port=8009

host=127.0.0.1

#define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

# Map the Tomcat examples webapp to the Web server uri space 

[uri:/yedongdshu/WEB-INF/*]

[uri:/*.jsp]

info=Map the whole webapp

关于workers2.properties的说明:

[uri:/yedongdshu/WEB-INF/*]

[uri:/*.jsp]表示遇到javabean,servlet,jsp时,apache统一交给tomcat处理。

我的httpd.conf:

修改安装目录下的Apache2confhttpd.conf文件,

  1.在LoadModule那一段代码中添加:

LoadModule jk2_module modules/mod_jk2.so

  2.将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示;

  3.在“httpd.conf最后添加:(此段配置可以根据你的实际情况进行修改)

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "F:/Tomcat/webapps/yedongshu"

ServerName 212.20.36.215

ErrorLog logs/my-error_log

CustomLog logs/my-access_log common

</VirtualHost>

 4.如果你的主页是JSP页面,你还需要配置一项:

   DirectoryIndex index.html index.html.var index.jsp

我的server.xml(F:/Tomcat/conf/server.xml):

在最后的</Host>前面加上一行:<Context path="" docBase="yedongshu" debug="0"/>

path表示你访问时用到的目录,docBase表示你的应用项目,这里我就可以用http://212.20.36.215直接访问了.

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。