浅析httpd.conf、mod_jk.conf、worker.properties之间的关系

浏览次数:480

在webplus中,apache有3个需定制的配置文件,分别为httpd.conf、mod_jk.conf、worker.properties
其中,旧版本httpd.conf中会引用mod_jk.conf
LoadModule jk_module modules/mod_jk.so
Include  conf/mod_jk.conf

旧版本mod_jk.conf中会引用workers.properties
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log

workers.properties就是转发tomcat ajp的主机列表,即三者呈链状关系

┌─────────┐             ┌──────────┐                 ┌──────────────┐                           
│  httpd.conf  ┃   -->      │  mod_jk.conf  ┃     -->       │  workers.properties  ┃        
└━━━━━━━━━━┘              └━━━━━━━━━━━━┘                 └━━━━━━━━━━━━━━━━━┘                                          


但是随着多项目转发的实例增多,特别是移动项目等环境,需要使用单apache转发多tomcat的情况下,多次调用mod_jk.conf会导致多次加载workers.properties主机列表,而apache中,workers.properties主机列表只允许加载一次,故现在逐渐将主机列表交由httpd.conf加载(即将mod_jk.conf中JkWorkersFile conf/workers.properties转移至httpd.conf中)

┌─────────┐                    ┌──────────┐   
│  httpd.conf   ┃   ─┰──>     │   mod_jk.conf  ┃ 
└━━━━━━━━━━━┘    ┃             └━━━━━━━━━━━━┘  
                               ┃
                               ┃          ┌───────────────┐ 
                               └ ━━>  │   workers.properties   ┃
                                           └━━━━━━━━━━━━━━━━━━┘ 




A.workers.properties

作为主机列表,
workers.properties中存放ajp对接端口
worker.list=socket


worker.socket.type=ajp13                                #连接tomcat方式  ajp13  (对应tomcat 8009 端口)
worker.socket.host=127.0.0.1                          #连接tomcat主机地址,默认是本机127.0.0.1  (可以是网络地址)
worker.socket.port=8009                                 #连接tomcat端口  8009   (更换tomcat ajp端口时也需更改此端口号)
worker.socket.lbfactor=50                               #负载均衡权重,默认50,单机连接,无worker.controller.type=lb配置时,此项不生效
worker.socket.cachesize=10                              
worker.socket.cache_timeout=600                       
worker.socket.socket_keepalive=1                        
worker.socket.socket_timeout=300                       



B.mod_jk.conf

JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat [%a %b %d %H:%M:%S %Y]
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat %w %V %T

JkMount /*.jsp                                                                  socket
JKMount /*.jspy                                                                socket
JKMount /*.faces                                                              socket
JKMount /*.do                                                                  socket
JKMount /*.psp                                                                 socket
JKMount /_visitcount                                                        socket
JKMount /_visitcountdisplay                                             socket
JKMount /_control/validateimage                                    socket
JKMount /_ids/parsePicServlet                                         socket
JKMount /_ckeditor/uploader                                          socket
JKMount /_ckeditor/waterMark                                        socket
JKMount /_WorkPlanServer                                              socket
JKMount /_wp3service/metaWebBlogService                  socket
JKMount /_wp3services/rssoffer                                       socket
JKMount /_sites                                                                 socket
JKMount /_sitemap                                                           socket
JKMount /_fileup                                                               socket
JKMount /_redirect                                                           socket
JKMount /_wp3services/downLoadResource                   socket
JKMount /_watermark                                                       socket
JKMount /_wp3services/backUpDownload                      socket
JKMount /_wp3services/generalQuery                             socket



其中JkMount为提交给tomcat动态处理内容,根据应用不同,会使用不同JKMount

测试排除时可使用完全转发,可用于定位mod_jk.conf中转发内容正确性
JKMount /*socket