tomcat 7 用mod_jk作 負載均衡

在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

相關文章
相關標籤/搜索