Tomcat 6 設定 Cluster, Apache Load Balance 重點速記
Tomcat 與 Apache 透過 mod_jk 連結部分為基本設定.
以下說明基於 Tomcat 與 Apache 已經設定好之情況.
- Tomcat 之 server.xml 將 Engine 下之 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 註解拿掉, 因沒設定參數, 都採 default 設定, 如 multicast ip/port 等. 若有需求可改設定. 請參考 tomcat 文件.
- 需 load-balance 之 webapp, 其 web.xml 需宣告 <distributable/>
- 需 load-balance 之 webapp, 放於 session 之物件都需實作 java.io.Serializable
- mod_jk.conf 將 Tomcat 與 Apache mapping 設定移除, 如下:
#JkMount /test/* ap1 --> 需註解掉 - mod_jk.conf 增加 load balance mapping 設定檔, 如下:
JkMountFile conf/uriworkermap.properties - workers.properties 設定如下:
worker.list=router,jkstatus worker.ap1.port=8009 worker.ap1.host=192.168.1.10 worker.ap1.type=ajp13 worker.ap1.lbfactor=1 worker.ap2.port=8009 worker.ap2.host=192.168.1.11 worker.ap2.type=ajp13 worker.ap2.lbfactor=1 worker.router.type=lb worker.router.balance_workers=ap1,ap2 worker.jkstatus.type=status
說明如下:- router 這組type設為lb, 其 load-balance 之機器為 ap1, ap2 這兩組設定.
- jkstatus 這組type設為 status, 可以查看 mod_jk 運作狀況.
- uriworkermap.properties 檔案設定哪些 url 要交由哪組 worker 運作.
如: /test/*=router - httpd.conf 需設定查 mod_jk 運作狀況之程式 url mapping, 如 http://127.0.0.1/jkmanager 則設定如下
<Location /jkmanager> JkMount jkstatus Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
- 若需走 https, httpd-ssl.conf VirtualHost 下也需設定 uriworkermap.properties, 如下:
JkMountFile conf/uriworkermap.properties