Apache + Tomcat + Load Balancing

來源:互聯網
上載者:User

http://www.phpchina.com/download/handbook/linux-html/1318.html

 

續二:Apache 2.0.48 + Tomcat 5.0.18 + Load Balancing (Solaris 9 x86)

Tomcat 5的安裝及與Apache的整合請看我的這裡
http://bbs.chinaunix.net/forum/6/20040214/259794.html
http://bbs.chinaunix.net/forum/6/20040214/263220.html

I. 先安裝第二個Tomcat,把已裝好的複製一份就可以了
代碼:

# cp -Rp /path/to/tomcat1 /path/to/tomcat2

II. 設定第二個Tomcat的啟動指令碼

如果用jsvc,修改CATALINA_HOME變數等於/path/to/tomcat2
代碼:

# cd /etc/init.d
# cp tomcat tomcat2
# vi tomcat2
# cd ../rc3.d
# ln ../init.d/tomcat2 S99tomcat2
# cd ../rc0.d
# ln ../init.d/tomcat2 K03tomcat2

如果用內建的startup.sh,則修改bin/catalina.sh,在開始處加上
代碼:

CATALINA_HOME=/path/to/tomcat2; export CATALINA_HOME

III. 修改兩個Tomcat的設定檔server.xml

代碼:

要修改的內容 Control Port
修改前 <Server port="8005"
修改後tomcat1 <Server port="11005"
修改後tomcat2 <Server port="12005"

要修改的內容 AJP13 Port
修改前 <Connector port="8009"
修改後tomcat1 <Connector port="11009"
修改後tomcat2 <Connector port="12009"

要修改的內容 Http Port
修改前 <Connector port="8080"
修改後tomcat1 <Connector port="11080"
修改後tomcat2 <Connector port="12080"

要修改的內容 Set jvmRoute
修改前 <Engine name="Catalina" defaultHost="localhost" debug=0">
修改後tomcat1 <Engine jvmRoute="tomcat1" name="Catalina" defaultHost="localhost" debug=0">
修改後tomcat2 <Engine jvmRoute="tomcat2" name="Catalina" defaultHost="localhost" debug=0">

IV. 配置workers2.proerties

代碼:

#---- worker2.properties

[logger.apache2]
level=DEBUG

# Shared memory handling. Needs to be set.
[shm]
file=/var/apache/logs/shm.file
size=1048576

[channel.socket:localhost:11009]
tomcatId=localhost:11009
port=11009
host=127.0.0.1
lb_factor=1
group=lb_1
disabled=0

[channel.socket:localhost:12009]
tomcatId=localhost:12009
port=12009
host=127.0.0.1
lb_factor=1
group=lb_1
disabled=0

[status:status]

[lb:lb]
info=Default load balancer
debug=1

[lb:lb_1]
info=Second load balancer
debug=0

# Uri mapping

[uri:/jkstatus/*]
group=status:status

[uri:/*]
group=lb:lb_1

#---- end of workers2.properties

V. 建立兩個測試用的jsp檔案
/path/to/tomcat1/webapps/ROOT/test.jsp
代碼:

<html>
 body bgcolor="red" 
<center>
<%= request.getSession().getId() %>
<h1>Tomcat 1</h1>
</body>
</html>

/path/to/tomcat2/webapps/ROOT/test.jsp
代碼:

<html>
 body bgcolor="blue" 
<center>
<%= request.getSession().getId() %>
<h1>Tomcat 2</h1>
</body>
</html>

VI. 測試
啟動tomcat1、tomcat2和apache
代碼:

# /etc/init.d/tomcat start
# /etc/init.d/tomcat2 start
# /etc/init.d/apache start

用瀏覽器測試一下 http://yourserverip/test.jsp
紅色頁面說明訪問的是tomcat1
藍色的是tomcat2

VII. Links
http://raibledesigns.com/tomcat/

實現session的複製

I. 修改server.xml
取消server.xml檔案中對下面這段代碼的注釋,還要修改tcpListenPort的值,注意不能衝突,可以設成4001和4002
代碼:

<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true">

<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>

<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"/>

<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*.gif;.*.js;.*.jpg;.*.htm;.*.html;.*.txt;"/>
</Cluster>

II. 修改web.xml
修改示範Servlet的Web應用的web.xml檔案,添加<distributable/>元素。
代碼:

......

<display-name>Servlet 2.4 Examples</display-name>
<description>
Servlet 2.4 Examples.
</description>

<distributable/>

......

III. 測試

訪問url: http://serverip/servlets-examples/servlet/SessionExample

1. 關閉tomcat1和tomcat2;
2. 啟動tomcat1
3. 在瀏覽器中輸入屬性名稱tomcat1和屬性值tomcat1再提交,返回的頁面顯示session中有剛剛輸入的tomcat1屬性;
4. 啟動tomcat2;
5. 過一會後(等待tomcat2和tomcat1通訊並複製資訊)關閉tomcat1;
6. 在瀏覽器中輸入屬性名稱tomcat2和屬性值tomcat2再提交,返回的頁面顯示session中有剛剛輸入的tomcat2屬性,還有先前輸入的tomcat1屬性;
7. 啟動tomcat1;
8. 過一會後(等待tomcat2和tomcat1通訊並複製資訊)關閉tomcat2;
9. 在瀏覽器中輸入屬性名稱tomcat11和屬性值tomcat11再提交,返回的頁面顯示session中有剛剛輸入的tomcat11屬性,還有先前輸入的tomcat1和tomcat2屬性;

IV. 參考文檔

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/cluster-howto.html
http://www-900.ibm.com/developerWorks/cn/java/l-jetspeed/

全文結束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.