測試環境為Windows 2003
需準備Apache, Tomcat,mod_jk.so
分別安裝好Apache和Tomcat
就可以開始設定整合所需的檔案
Step 1
將mod_jk.so放到/Apache/modules下
Step 2
修改/Apache/conf/httpd.conf
加入以下
#mode_jk Settings加不加註解就看個人習慣了
Include conf/mod_jk.conf
Step 3
/Apache/conf下新增mod_jk.conf
內容為
#Load module mod_jk其中最後一項比較重要
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/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"
#close Lookup
#HostnameLookups Off
#what's request should be send to tomcat
JkMount /* controller
是設定tomcat負責處理哪些請求
而controller是要做load balance是要用的
不需要的話可以拿掉
Step 4
/Apache/conf下新增workers.properties
內容為
worker.list = controller,tomcat1,tomcat2worker.list設定所要整合的tomcat
#========tomcat1========
worker.tomcat1.port=7009 #ajp13 端口號,在tomcat下server.xml配置,默認8009
worker.tomcat1.host=localhost #tomcat的主機地址,如不為本機,請填寫ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 5 #server的加權比重,值越高,分得的請求越多
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 3
#========controller(load balance)========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分擔請求的tomcat
worker.controller.sticky_session=1
名稱可以自訂
但port的部份要跟tomcat的server.xml裡一致
Step 5
修改/tomcat/conf/server.xml
這裡的port跟workers.properties裡的一致
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="7009"
enableLookups="false" redirectPort="7443" protocol="AJP/1.3" />
找到以下
<!-- You should set jvmRoute to support load-balancing via AJP ie : -->jvmRoute=tomcat1這邊也是名稱要一致
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
找到以下
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"拿掉原本的註釋
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
.
.
.
<ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
</Cluster>
其中tcpListenPort要注意是否被用了
這樣就改好workers.properties裡的tomcat1了
tomcat2的server.xml也是一樣的修改
Step 6
兩個tomcat修改完後分別啟動
先測試在各自的port下localhost是否能連
然後再啟動Apache
測試是否直接在80 port下
localhost就可以連到那兩個tomcat
因為有設定load balance的關係
所以要多連幾次才能看出是否兩台都有通!
沒有留言:
張貼留言