将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache,IIS等这些web server处理,由此大大节省了tomcat有限的工作“线程”。
当然,使用IBM Websphere、BEA Weblogic、JBOSS等这些 J2EE服务器会是一个更好的解决方案,但只有应用EJB才会发挥这些J2EE服务器的强大功能。
所以在这里,推荐Apache + Tomcat的“黄金组合”。在网上查找了一些资料,然后自己动手实验,折腾了近1个小时,终于搞掂!现将具体过程总结如下,希望对大家能有所帮助:
**准备软件:
1、Apache 2.0.49 2、Tomcat 5.0.19 3、Jk2连接器(mod_jk2.so)
Apache安装在H:\Apache\Apache2 下,监听端口 80;Tomcat在H:\Apache\Tomcat5.0 下,监听端口 8080;
两者都以windows NT服务进行安装。
将mod_jk2.so复制到H:\Apache\Apache2\modules目录下:
1.编辑H:\Apache\Apache2\conf\httpd.conf文件,在LoadModule那一段代码中添加:
LoadModule jk2_module modules/mod_jk2.so
2.将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示;
3.在“虚拟主机配置代码段”中添加:(此段配置可以根据你的实际情况进行修改)
<VirtualHost *:80>
ServerAdmin Pentium4xeon@etang.com
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>
[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
重新启动以后,启动apache和tomcat,http://www.sdg.com该是和http://www.sdg.com:8080一样的了—显示的都是index.html;
现在可以测试一下 test.jsp 了,http://www.sdg.com/test.jsp,怎么样,顺利通过了吧?
1. 如果你的主页是JSP页面,你还需要配置一项:
————**整合以后,工作一直正常,但偶然打开了Apache的 error.log文件,被吓出一身冷汗~~~~有N多的错误,有一行最显眼儿:
No such channel port:localhost:8019
…..Ajp13xx failed!
[ajp13:localhost:8019]
channel=channel.socket:localhost:8009
DocumentRoot “H:\Apache\Tomcat5.0\webapps\ROOT” 配置的话,主机也能正常工作,但如果这时打开 logs/sdg.com-error_log 文件,就会发现有一行错误提示:
DocumentRoot “H:/Apache/Tomcat5.0/webapps/ROOT”
则完全没有任何警告信息出现在 error_log文件中~
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:
修改安装目录下的Apache2\conf\httpd.conf文件,
1.在LoadModule那一段代码中添加:
LoadModule jk2_module modules/mod_jk2.so
2.将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示;
3.在“httpd.conf最后添加:(此段配置可以根据你的实际情况进行修改)
<VirtualHost *:80>
ServerAdmin yds@163.com
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直接访问了.