標籤:one more method 下載 getattr 1.3 oca 建立 system
Apache2.2 Tomcat7 叢集 session共用
下載:
Apache2.2、apache-tomcat-7.0.42.zip、tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip【mod_jk】
分別解壓縮Apache2.2、apache-tomcat-7.0.42.zip、tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip
此處:C:\Apache2.2、C:\tomcat\tomcat71、C:\tomcat\tomcat72
copy從comcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip解壓縮後的檔案mod_jk.so至C:\Apache2.2\modules中。
在C:\Apache2.2\conf下建立檔案workers.properties、內容如下:
#server 列表worker.list = controller,tomcat1,tomcat2 #========tomcat1========worker.tomcat1.port=8009 #注意這是 ajp1.3 連接埠號碼,在tomcat下server.xml配置,預設8009。不是tomcat的web連接埠worker.tomcat1.host=localhost #tomcat的主機地址,如不為本機,請填寫ip地址worker.tomcat1.type=ajp13worker.tomcat1.lbfactor = 1 #server的加權比重,值越高,分得的請求越多#========tomcat2========worker.tomcat2.port=9009worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.lbfactor = 1#========controller,負載平衡控制器========worker.controller.type=lbworker.controller.balanced_workers=tomcat1,tomcat2 #指定分擔請求的tomcat#session複製模式worker.controller.sticky_session=falseworker.controller.sticky_session_force=1#sticky模式,即黏性會話模式#worker.controller.sticky_session=1
在C:\Apache2.2\conf下建立檔案mod_jk.conf、內容如下:
#載入mod_jk ModuleLoadModule jk_module modules/mod_jk.so#指定 workers.properties檔案路徑JkWorkersFile conf/workers.properties#指定那些請求交給tomcat處理,"controller"為在workers.propertise裡指定的負載分配控制器名JkMount /*.jsp controller
修改C:\Apache2.2\conf\httpd.conf,在最後一行,添加:
include "C:\Apache2.2\conf\mod_jk.conf"
此時,apache修改完畢;
接下來修改tomcat、修改tomcat1的C:\tomcat\tomcat71\conf\server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">... <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
修改tomcat2的server.xml檔案
<Server port="9005" shutdown="SHUTDOWN">。。。 <Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />。。。 <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />。。。 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">。。。 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
主要是修改連接埠,使其同tomcat1的連接埠避免有衝突。
建立test檔案夾,在其下建立test.jsp,內容如下:
<%@ page contentType="text/html; charset=GBK"%><%@ page import="java.util.*"%><html><head><title>Cluster App Test</title></head><body> Server Info: <% out.println(request.getLocalAddr() + " : " + request.getLocalPort() + "<br>");%> <% out.println("<br> ID " + session.getId() + "<br>"); // if have new Session attr set String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.println("<b>Session list</b><br>"); System.out.println("=============tomcat 1==============="); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String) e.nextElement(); String value = session.getAttribute(name).toString(); out.println(name + " = " + value + "<br>"); System.out.println(name + " = " + value); } %> <form action="test.jsp" method="POST"> name:<input type=text size=20 name="dataName"> <br> value:<input type=text size=20 name="dataValue"> <br> <input type=submit> </form></body></html>
將test檔案夾分別copy至C:\tomcat\tomcat71\webapps、C:\tomcat\tomcat72\webapps下。
分別啟動或重啟tomcat1、tomcat2、apache、無先後順序。
瀏覽器輸入:
http://localhost/test/test.jsp
觀察效果。
Done.
-----------------
Apache2.2 Tomcat7 叢集 session共用 [windows]