在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