apache+tomcat配置[转]
2007-10-27 21:13
apache和IIS都是web服务器,就像IIS是asp的服务器,apache是jsp的服务器一样。
你有了tomcat和apache就已经够了,IIS就是多余的了。 具体配置如下: Apache与Tomcat的安装与整合之整合篇: 二. 单独使用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.4.2_04 + Apache2.0.49 + Tomcat4.1.30 **准备软件: 1、Apache 2.0.49 2、Tomcat 4.1.30 3、Jk2连接器(mod_jk2.so,网上搜索一下,很多下的) **开始安装:(这里的安装路径是任选的,只要视你的实际情况略做修改即可) Apache安装在C:\Apache 下,监听端口 80; Tomcat在C:\Tomcat4 下,监听端口 8080;两者都以windows NT服务进行安装。 **建立自己的jsp app目录 1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录; 2.在webapps目录下新建一个目录,起名叫myapp; 3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的; 4.WEB-INF下新建一个文件web.xml,内容如下: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Web Application</display-name> <description> A application for test. </description> </web-app> 5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下: <html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html> 6.重启Tomcat 7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。 配置Apache: 将mod_jk2.so复制到C:\Apache\Apache2\modules目录下: 1.编辑C:\Apache\Apache2\conf\httpd.conf文件,在LoadModule那一段代码中添加: LoadModule jk2_module modules/mod_jk2.so (mod_jk2.so需要你去下载) 2.将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示; 3.在“虚拟主机配置代码段”中添加:(此段配置可以根据你的实际情况进行修改) <VirtualHost *:80> ServerAdmin liaomingyong@yahoo.com.cn DocumentRoot "C:/Tomcat4/webapps/myapp" ServerName 192.168.0.178 ErrorLog logs/my-error_log CustomLog logs/my-access_log common </VirtualHost> **新建workers2.properties文件并将其加入C:\Apache\Apache2\conf目录,内容如下: [shm] file=${serverRoot}/logs/shm.file size=1048576 #The socket channel [channel.socket:localhost:8009] port=8009 host=192.168.0.178 #define the worker [ajp13:localhost:8009] channel=channel.socket:localhost:8009 # Map the Tomcat examples webapp to the Web server uri space [uri:/myapp/WEB-INF/*] [uri:/*.jsp] worker=ajp13:localhost:8009 info=Map the whole webapp **编写一个普通的html文件(index.html)与一个jsp文件(test.jsp),放在C:\Tomcat4\webapps\myapp 下;现在最好重新启动一下计算机。 重新启动以后,启动apache和tomcat, http://192.168.0.178 应该是和 http://192.168.0.178:8080 一样的了-----> 显示的都是index.html; 现在可以测试一下 test.jsp 了,http://www.sdg.com/test.jsp,怎么样,顺利通过了吧? **下面测试Tomcat连接池部分: 将网站的所有文件(html + jsp + javaBean + servlet)拷贝至C:\Tomcat4\webapps\myapp 下, 配置tomcat的server.xml文件,添加连接池。在我这儿,经过测试,所有的功能部分都能正常工作。 *********后**********记************************* 1. 如果你的主页是JSP页面,你还需要配置一项: DirectoryIndex index.html index.html.var index.jsp 加上index.jsp就可以了 2. 又发现一个配置上的“小问题”---- 虚拟主机有一项配置:DocumentRoot项,如果按照 DocumentRoot "H:\Apache\Tomcat5.0\webapps\ROOT" 配置的话,主机也能正常工作, 但如果这时打开 logs/sdg.com-error_log 文件,就会发现有一行错误提示: **warning: "H:\\Apache\\Tomcat5.0\\webapps\\ROOT" doesn't exist! 经尝试,若改成: DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT" 则完全没有任何警告信息出现在 error_log文件中 我的server.xml(F:/Tomcat/conf/server.xml): 在最后的</Host>前面加上一行:<Context path="" docBase="myapp" debug="0"/> path表示你访问时用到的目录,docBase表示你的应用项目,这里我就可以用 http://192.168.0.178 直接访问了. |