设为首页 收藏本站
查看: 555|回复: 0

[经验分享] Apache和TomCat的整合以及相关问题的解决

[复制链接]

尚未签到

发表于 2018-11-23 08:14:34 | 显示全部楼层 |阅读模式
  准备软件:
  1、jdk-6u21-windows-i586.exe
  下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2、httpd-2.2.16-win32-x86-no_ssl.msi
  下载地址:http://httpd.apache.org/download.cgi
  3、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\bin
  c、在系统变量中的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= s1
  worker.s1.port=8009
  worker.s1.host=localhost
  worker.s1.type=ajp13
  worker.DLOG4J.type=lb
  worker.retries=3
  worker.DLOG4J.balanced_workers=s1
  worker.DLOG4J.sticky_session=1
  worker.status.type=status
  c、创建mod_jk.conf文件C:\sever\Apache2.2\confmod_jk.conf的内容为:
  JkWorkersFile C:\sever\Apache2.2\conf\workers.properties
  JkLogFile C:\sever\Apache2.2\logs/mod_jk.log
  JkLogLevel info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat "%w %V %T"
  JkMount /servlet/* s1
  JkMount /*.jsp s1
  JkMount /*.action s1
  JkMount /*.do s1
  JkMount /lunchGroup/* s1
  d、最后修改Apache的conf/httpd.conf配置文件,找到#LoadModule XXXX到最后一行插入如下两行:
  LoadModule jk_module modules/mod_jk.so
  Include conf/mod_jk.conf
  e、修改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 250
  MaxRequestsPerChild 0
  Win32DisableAcceptEx #添加这一行即可,做过压力测试,对性能影响很小,可以忽略
  ④上网用的Dr.COM 客户端是跟Apache有些冲突的(具体我也不知道)。如果你在启动了Dr.COM客户端的情况下启动Apache这时还会出现上述错误。一定要关掉 Dr.COM客户端。这时应该就可以正常启动Apache服务器了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638435-1-1.html 上篇帖子: apache+tomcat+mod_jk整合 下篇帖子: org.apache.commons.logging
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表