windows下apache集成tomcat适合新人的方法

       刚出来实习让搞apache集成tomcat当服务器,由于自己在学校只学过理论基础,所以对这些东西的了解完全从空白开始,一路跌跌撞撞走了很多弯路,我要说的第一句话是,不要把apache集成tomcatApache + Tomcat集群混为一谈,后者更麻烦一些,我刚开始由于不懂一直按后者来配置,由于哪些博客都是很久以前写的了(很多大佬那时用的apache都是2.2的),出了很多问题,但由于概念被我搞混了一直不能解决问题,可谓心力交瘁了,但是问题解决后总会发现不过如此,我所欠缺的是,坚持,坚持,再坚持。

        先说说我对集成本身的了解吧,tomcat:能处理jsp、html等,apache只能处理静态的请求;apache处理html能力比tomcat强。apache集成tomcat的环境下,通过apache的80端口访问jsp页面,apache只是起到一个转发作用,jsp还是在tomcat运行。

需要的文件:

tomcat7

apache2.4

mod_jk.so:可以到我的博客下载:https://download.csdn.net/download/bokerr/10615103

(window下可以直接下载了用,linux下又完全是另一种情况了)

具体流程:

a.首先tomcat:我用的tomcat7.0.90,安装很简单,只需要配置一下几个环境变量就好了,8080端口被占用就改掉,反正网上教程很多我就不赘述了。

b.然后apache:httpd-2.4.16-win64 估计2.4都能用吧,说得不对希望指正。

其它好像也没什么改的,启动失败就改端口,如果改了端口还是启动不了那就是配置文件错了,就去apache的bin目录下使用命令行(如果不理解可以去网上查一下),用指令启动看错误在什么地方:(用指令启动会报出具体因为什么原因导致启动失败,可以具体定位到具体的配置文件的具体位置,这么启动确实繁琐了点,不过平时就用apache/bin/ApacheMonitor.exe启动就好了)

.\httpd.exe -w -n "apache" -k start
//引号内是在windows服务那边你的apache服务的具体名字(管理->服务->然后找到具体名字)

例如我的:

扫描二维码关注公众号,回复: 3310583 查看本文章

apache和Tomcat都启动成功能正常使用了就可以进行配置了(配置途中建议关掉。。。。。鬼知道会不会蹦出来一个错误):

在apache的配置文件apache/conf/httpd.conf下把LoadModule access_compat_module modules/mod_access_compat.so模块的注释取消,否则设置权限时会提醒order等等设置是无效的,70多行

c.把mod_jk.so放到D:\Apache24\modules目录下。

d.接下来进行配置文件的处理

在D:\Apache24\conf目录下新建文件workers.properties和mod_jk.conf

以下三个配置文件在windows和linux下配置的内容一样

在新建的workers.properties里配置如下内容:

#worker.list表示tomcat,不需要写入tomcat安装路径,当jsp请求发送到apache的80端口,apache根据以下参
#数找到对应的tomcat:type、host、port等

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

在新建的mod_jk.conf里填入如下内容,路径注意修改为你自己的

#加载并设置mod_jk.so组件
JkWorkersFile D:/Apache24/conf/workers.properties  
JkLogFile D:/Apache24/logs/mod_jk.log  
JkLogLevel info

#日志相关格式  
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"  
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories  
JkRequestLogFormat "%w %V %T"  

#需要进行转发的列表,其中包块了:servlet、jsp、.do、.action等等。。
JkMount /*/servlet/*  worker1  
JkMount /*.jsp worker1  //jsp转发到worker1(worker1是通过mod_jk.conf匹配的tomcat)
JkMount /application/* worker1  
JkMount /*.do worker1 
JkMount /*.action worker1 //转发action到worker1
JkMount /*.class worker1  
JkMount /*.jar worker1

apache的 httpd.conf配置文件最后面加上两行,读入上面的配置两个配置文件:

#读入上面配置的两个配置文件
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf

workers.properties配置了转发的Tomcat,mod_jk.conf配置的内容包括:加载mod_jk.so模块(这是apache的一个功能模块,mod_jk.conf就是为了启动它进行配置)、设置相关的日志格式、配置需要转发到tomcat的请求类型(apache不能处理jsp等等,apache会根据workers.properties里面配置的tomcat端口、host等等信息将请求转发到tomcat,然后接收tomcat执行结果返回给请求对象:即浏览器)


补充:linux下apache集成tomcat和windows下的区别,

PS:更新中,建议忽略以下内容

linux下装软件比较烦,这两种环境下配置文件中配置的内容都是一样的,主要区别来自怎么装软件,建议yum安装apache,编译源码的方法对新手不太友好,以及配置文件目录要找清楚,mod_jk.so也不能直接用了,这个要编译后才能使用;如果你的虚拟机有自带apache建议就不要折腾了,不过一般都是2.2.*版本,linux下我用apache2.2.*和tomcat7.*也能跑起来,唯一麻烦的是mod_jk.so的编译,如果你的apache已经存在了;(有空的同学可以编译安装试试,去踩踩雷也是好的)

//适用于centOS6.*版本的yum源安装推荐,使用前不妨大致了解下yum的作用,很快

https://blog.csdn.net/owangf_dl/article/details/78966369

下面是我在centos6.5下使用的一些命令:

使用rpm -qa | grep httpd查看是否已经安装了httpd

使用ps -ef | grep httpd查看httpd的进程

使用service httpd status查看httpd的运行状态

使用service httpd stop可以停止httpd

使用service httpd start 可以启动httpd

//编译mod_jk.so时需要这个路径,某些情况下你这个路径不见得和别人的一样,所以这个指令用处就大了

find / -name apsx

查看进程端口: ps aux | grep yum

终止进程:kill -9 pid(进程标识)

猜你喜欢

转载自blog.csdn.net/bokerr/article/details/81868730