在Win7中使用apache爲tomcat作負載均衡,各組件及版本以下:web
兩個tomcat v 7.0.57apache
一個apache v 2.2.14windows
一個mod_jk v 1.2.33(for windows i386 httpd 2.2.x),下載地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.33-windows-i386-httpd-2.2.x.ziptomcat
配置方法:session
1.安裝apache(略)app
在安裝目錄(conf所在目錄)再增長一個文件夾:conf.d, 在此文件夾下面,編輯以下文件:負載均衡
mod_jk.confjvm
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf.d/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send servlet for context /examples to worker named ajp13
#JkMount /servlet/* controller
# Send JSPs for context /examples to worker named ajp13
JkMount /* controller
這個配置JKMoun /* controller表示將apache的全部請求都轉向tomcat。再編輯一個文件以下:socket
workers.propertiestcp
#
# workers.properties
#
# list the workers by name
worker.list=controller
worker.controller.type=lb
worker.controller.sticky_session=1
worker.controller.error_escalation_time=0
worker.controller.max_reply_timeouts=10
# localhost server 1
# ------------------------
worker.jvm1.reference=worker.template
worker.jvm1.port=8019 #對應tomcat ajp 端口
worker.jvm1.host=localhost
worker.jvm1.lbfactor = 1 #權重
worker.jvm1.activation=A
# localhost server 2
# ------------------------
worker.jvm2.reference=worker.template
worker.jvm2.port=8029
worker.jvm2.host=localhost
worker.jvm2.lbfactor = 1
worker.jvm2.activation=A
worker.template.type=ajp13
worker.template.socket_connect_timeout=5000
worker.template.socket_keepalive=true
worker.template.ping_mode=A
worker.template.ping_timeout=10000
worker.template.connection_pool_minsize=0
worker.template.connection_pool_timeout=600
worker.template.reply_timeout=300000
worker.template.recovery_options=3
worker.controller.balance_workers=jvm1, jvm2
#對應兩個tomcat jvmRoute
而後,編輯conf/httpd.conf,在最後加入以下一行:
Include conf.d/mod_jk.conf
將上面下載的mod_jk.so,複製到apache的安裝目錄modules下面。
2.配置tomcat
修改第一個tomcat的server.xml,以下所示:
... <Server port="8015" shutdown="SHUTDOWN"> ... <Connector port="8091" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> .... <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" /> ... <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> ... <!----> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> ...
同理修改第二個tomcat的配置:
... <Server port="8025" shutdown="SHUTDOWN"> ... <Connector port="8092" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> .... <Connector port="8029" protocol="AJP/1.3" redirectPort="8443" /> ... <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2"> ... <!----> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> ...
最後兩個tomcat的web.xml,都加入一行<distributable/>到以下位置:
... <distributable/> </web-app>
啓動apache,和兩個tomcat,便可按apache的監聽端口進行訪問,tomcat的監聽端口忽略不用,如:
http://localhost 或 http://127.0.0.1