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

Apache和TomCat的整合以及相关问题的解决

2014-03-01 22:27 477 查看
准备软件:1、jdk-6u21-windows-i586.exe下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html2、httpd-2.2.16-win32-x86-no_ssl.msi下载地址:http://httpd.apache.org/download.cgi3、apache-tomcat-6.0.29.exe下载地址:http://www.apache.org/dist/tomcat/tomcat-6/v6.0.29/bin/4、mod_jk-1.2.30-httpd-2.2.3.so(要和httpd-2.2.16版本相同,或则尽量选择版本接近的,这点很重要)下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.30/①安装JDK,要选择一个不带空格的路径,否则后面有很多不知名的问题。例如我JDK安装在C:\java ,JRE安装在C:\java\jre6 。接下来就是配置环境变量了。a、在系统变量中新建JAVA_HOME,值为 C:\java,也就是JDK的安装主目录。b、在系统变量中的PATH项添加; %JAVA_HOME%\bin;%JAVA_HOME%\jre\binc、在系统变量中的CLASSPATH项添加下面的,如果没有就新建。.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面有点)可以进入类文件夹下,运行一个,看看是否成功。②安装Apache HTTP Server,也就是httpd-2.2.16-win32-x86-no_ssl.msi。不要默认安装,也要安装在没有空格的路径里。本文安装在C:\server\Apache2.2。安装过程中需要指定服务器所在的DNS域名、服务器DNS名称、管理员邮箱,以及服务器启动参数。没有域名可以指定DNS域名和服务器DNS名称为localhost。实际工作中,DNS域名为所购域名的后半部分,服务器DNS名称即为所购域名。如果服务器没有提供邮件服务,管理员邮箱可以任意指定。安装完后,在浏览器中访问http://localhost,如果出现It Works!说明安装是成功的。③再安装Tomcat,也就是apache-tomcat-6.0.29.exe。同样,不要默认安装,也要安装在没有空格的路径里。本文安装在C:\server\Tomcat 6.0。安装中需要指定Tomcat使用的端口号、服务器管理员登录用户名和密码。前面的可以按照默认的来,用户名和密码要牢记。安装完后在浏览器中访问http://localhost:8080/,如果出现TomCat 的首页说明成功。④这一步是进行Apache HTTP Server和Tomcat的整合。Tomcat为一个jsp的容器,Apache为一个web server,两者之间通信通过worker进行(由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议),通过 mod_jk的模块(由web服务器像apache、iis等使用)和Web Server通信。通信协议有很多,其中jk2已经被抛弃了,现在就用jk就好了。文件说明mod_jk.conf主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。worker.properties 定义worker的参数,主要是连接tomcat主机的地址和端口信息。如果Tomcat与apache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。整个过程其实就是让apache的httpd.conf文件调用mod_jk.conf,mod_jk.conf调用workers.properties。a、拷贝m od_jk-1.2.30-httpd-2.2.3.so到d:\server\apache2.2\modules\ 并改名为mod_jk.so。b、创建workers.properties文件并放到C:\sever\Apache2.2\confworkers.properties的内容为:worker.list= s1worker.s1.port=8009worker.s1.host=localhostworker.s1.type=ajp13worker.DLOG4J.type=lbworker.retries=3worker.DLOG4J.balanced_workers=s1worker.DLOG4J.sticky_session=1worker.status.type=statusc、创建mod_jk.conf文件C:\sever\Apache2.2\confmod_jk.conf的内容为:JkWorkersFile C:\sever\Apache2.2\conf\workers.propertiesJkLogFile C:\sever\Apache2.2\logs/mod_jk.logJkLogLevel infoJkLogStampFormat "[%a %b %d %H:%M:%S %Y]"JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectoriesJkRequestLogFormat "%w %V %T"JkMount /servlet/* s1JkMount /*.jsp s1JkMount /*.action s1JkMount /*.do s1JkMount /lunchGroup/* s1d、最后修改Apache的conf/httpd.conf配置文件,找到#LoadModule XXXX到最后一行插入如下两行:LoadModule jk_module modules/mod_jk.soInclude conf/mod_jk.confe、修改Apache和Tomcat的文档主目录。1、apache可以直接在conf/httpd.conf下修改DocumentRoot的值为"C:\severgis"。就把文档主目录放到C:\severgis了。2、Tomcat是在C:\sever\Tomcat 6.0\conf的server.xmlHost name="localhost" appBase="webapps"这一句修改。只需将webapps换成想要的绝对路径就行。最后在服务管理中重启Apache2.2和Apache Tomcat6。在浏览器中访问http://localhost/index.jsp和http://localhost:8080/index.jsp 看结果是否相同,如果相同说明整合成功。问题:Apache配置注意事项及出现的问题:①安装前禁止IIS和迅雷以及其他占用80端口的服务。每次手动启动apache 时总是提示:本地计算机上的Apache服务启动后又停止了,一些服务自动停止,如果他们没什么可做的例如”日志和警报”服务。解决:netsh winsock reset 重置Winsock目录,不必重新启动。②不能自动启动。error.log日志类似这样描述:crit] (OS 10022)提供了一个无效的参数。解决:a、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾。b、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)即可。c、选择启用TCP/IP 上的NetBIOS(最关键,前面两个貌似可以不要)③error.log日志类似这样描述:[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.这是由于apache 使用了微软的AcceptEx()调用的缘故,禁用掉即可,此问题只会出现在win平台且apache的2.0.49和更高版本上,出现错误的大概原因是防火墙和防病毒软件所导致,导致结果也有好几种,像apache占用很高cpu资源或者网站页面无法打开。解决方法修改d:\server\apache2.2\conf\httpd.conf中的mpm部分ThreadsPerChild 250MaxRequestsPerChild 0Win32DisableAcceptEx #添加这一行即可,做过压力测试,对性能影响很小,可以忽略④上网用的Dr.COM 客户端是跟Apache有些冲突的(具体我也不知道)。如果你在启动了Dr.COM客户端的情况下启动Apache这时还会出现上述错误。一定要关掉 Dr.COM客户端。这时应该就可以正常启动Apache服务器了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 软件 下载地址
相关文章推荐