apache与tomcat服务器链接有两种方式
1.apache自带的mod_proxy
2.tomcat推出的mod_jkcss
#1.为何要进行apache与tomcat链接?
咱们都知道,tomcat自己已经提供了http服务,该服务的默认端口是8080,装好tomcat后经过8080端口就能够直接使用tomcat了。 既然tomcat自己已经提供了这样的服务,为啥还要引入apache或者一些其余的http服务器呢?
1.提高对静态文件的处理能力(这是apache服务器的强项)
2.利用web服务器作负载均衡(单台tomcat确定存在性能瓶颈)
3.无缝升级应用程序(即不须要重启服务器的状况下,能够增长多台服务器)
#2.mod_jk模式
##1.jk是经过ajp协议与tomcat服务器进行通信的,tomcat默认的ajp Connector的端口是8009html
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
tomcat默认的http Connector的端口号是8080,这是tomcat自带的http服务web
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
单台tomcat就采用http服务。
##2.jk提供了一个监控及管理状态jkstatus,经过jkstatus能够监控jk目前的工做状态以及对tomcat的链接设置。
jk的配置有三个文件
###1.mod_jk.conf
它设置在apache的配置文件http.conf里面,用来加载jk模块及指定jk配置文件信息。
###2.workers.properties
链接到tomcat服务器的文件。
###3.uriworkermap.properties
uri映射文件,用来指定哪些url由tomcat处理。
##3.mod_jk.conf详解apache
#指定模块路径 LoadModule jk_module modules/mod_jk.so #指定mod_jk的workers JkWorkersFile conf/workers.properties #指定workers的请求处理分配 JkMountFile conf/uriworkermap.properties #指定jk的日志输出文件 JkLogFile logs/mod_jk.log #指定日志级别,这里设置成警告 JkLogLevel warn #包含标准的mod_jk(默认) #info #包含错误信息 #error #用来配置log文件的日期/时间格式,使用strftime()的格式化字符串,默认是[%a %b %d %H:%M:%S %Y] JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
##4.workers.properties缓存
#worker列表 worker.list=controller,Tomcat1,Tomcat2,status #========Tomcat1======== #端口 worker.Tomcat1.port=7009 #ip worker.Tomcat1.host=localhost #协议 worker.Tomcat1.type=ajp13 #加权比重,值越高,分的请求越多 worker.Tomcat1.lbfactor=1 #缓存数 worker.Tomcat1.cachesize=10 #========Tomcat2======== worker.Tomcat2.port=9009 worker.Tomcat2.host=localhost worker.Tomcat2.type=ajp13 worker.Tomcat2.lbfactor=1 #========controller======== #server名为controller,用于负载均衡 worker.controller.type=lb #指定分担请求的server列表,用逗号隔开 worker.controller.balanced_workers=Tomcat1,Tomcat2 #设置负载均衡的server的session能否共享 #一次请求中,session只会在一个jboss上,当该jboss崩溃后,请求会跳转到其它jboss上, #可是其session不会复制跳转到后的jboss上 #true=1 false=0 #我这里设置成false,即一个tomcat挂掉了后,请求不会自动转到另外一个tomcat上 #会出现这种现象,我请求第一次不成功(假设tomcat1挂掉),我请求第二次成功了(tomcat2工做) worker.controller.sticky_session=false #worker.controller.sticky_session_force=false #重试次数 worker.retries=3 #监控status worker.status.type=status
##5.uriworkermap.properties详解tomcat
#全部的请求都交给controller这个server处理 /*=controller #全部包含jkstatus的请求都由status这个server处理 #全部以.gif结尾的请求都 不给 controller这个server处理(注意:前面有个感叹号,表示非的意思) !/*.gif=controller !/*.jpg=controller !/*.png=controller !/*.css=controller !/*.js=controller !/*.htm=controller !/*.html=controller #如上这些都是静态文件,直接由apache处理了