LAMT部署jcenter及msm配置


1. 需求描述

現在需要配置一個LAMT(Linux+Apache+Mysql+Tomcat)webapp服務器

同時由於需要兩臺Tomcat,需要對會話Session進行處理,故在此採用memcached部署Session集羣服務器,實驗拓撲如下.

wpsE07F.tmp

由於條件有限,故可能多個服務可能部署在同一臺服務器,敬請諒解

2. 首先安裝Tomcat,並部署一個測試頁面

首先安裝Java,再安裝Tomcat,並導出相應環境變量

Tomcatwebapps目錄下新建一個test目錄,test目錄中分別建立一個index.jsp的文件,內容如下

Lab2

<%@ page language="java" %>
<html>
 <head><title>lab2</title></head>
 <body>
   <h1><font color="red">lab2.stu21.com</font></h1>
   <table align="centre" border="1">
     <tr>
       <td>Session ID</td>
   <% session.setAttribute("magedu.com","magedu.com"); %>
       <td><%= session.getId() %></td>
     </tr>
     <tr>
       <td>Created on</td>
       <td><%= session.getCreationTime() %></td>
    </tr>
   </table>
 </body>
</html>


lab3:

<%@ page language="java" %>
<html>
 <head><title>lab3</title></head>
 <body>
   <h1><font color="blue">lab3.stu21.com</font></h1>
   <table align="centre" border="1">
     <tr>
       <td>Session ID</td>
   <% session.setAttribute("magedu.com","magedu.com"); %>
       <td><%= session.getId() %></td>
     </tr>
     <tr>
       <td>Created on</td>
       <td><%= session.getCreationTime() %></td>
    </tr>
   </table>
 </body>
</html>

此時分別訪問lab2lab38080端口,效果如下,並且Session ID一直在變動

wpsE080.tmp

wpsE081.tmp

3. msm(memcached-session-manager)配置

1.首先需要將如下jar包放入tomcat安裝目錄下的lib目錄下

javolution-5.5.1.jar
memcached-session-manager-1.8.2.jar
memcached-session-manager-tc7-1.8.2.jar(此處的tc7爲tomcat版本,要保證於tomcat版本的一致)
msm-javolution-serializer-1.8.2.jar
spymemcached-2.10.2.jar

2.配置tomcat配置文件server.xml,testcontext中加入如下內容

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
     memcachedNodes="n1:172.16.21.1:11211" #此處爲memcached服務器地址
     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" #不爲圖片等靜態內容添加緩存
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />



3.memcached服務器安裝memcached服務器並啓動,接着重啓tomcat服務,此時訪問tomcat,效果如下

wpsE092.tmp

在原來的Session ID後增加了一個-1的字符,證明msm配置已經成功\

4. httpd上配置負載均衡,配置如下

ProxyVia Off
ProxyRequests Off
ProxyPass /jcenter balancer://jcenter/
ProxyPass /test balancer://test/
ProxyPa***everse /test balancer://test/
ProxyPa***everse /jcenter balancer://jcenter/
<proxy balancer://test>
BalancerMember ajp://172.16.21.102:8009/test/ loadfactor=10
BalancerMember ajp://172.16.21.103:8009/test/ loadfactor=10
</proxy>
<proxy balancer://jcenter>
BalancerMember ajp://172.16.21.102:8009/jcenter/ loadfactor=10
BalancerMember ajp://172.16.21.103:8009/jcenter/ loadfactor=10
</proxy>

此時,我們可以通過172.16.21.1來訪問後端的tomcat,並且session不會發生改變,效果如下

wpsE0A3.tmp

wpsE0A4.tmp



每次刷新響應的Tomcat不同,但是Session ID不會改變,此時,我們就可以部署JavaCenter

5. JavaCenter部署

訪問Lab2,安裝Mysql並授權jcenter用戶從172.16.21網段及lab.stu21.com,lab3.stu21.com的完全訪問jcenter數據庫的權限,將安裝包解壓到webapps目錄下,重命名爲jcenter,便可以進行訪問了,訪問172.16.21.102:8080/jcenter/install便可以進行安裝,按照提示安裝完成.

jcenter目錄通過nfs進行網絡共享,允許172.16.21.103進行訪問,lab3上將其掛在到於lab2相同的目錄下,此時亦可以進行正常訪問,但是要注意數據庫的IP,一定要指向172.16.21.2,否則在lab3上可能無法正產訪問.

先在我們需要將test下關於msm的配置複製到jcenter,效果如下

     

<Context path="/jcenter" docBase="jcenter" >
         <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
               memcachedNodes="n1:172.16.21.1:11211"
               requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
               transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />
</Context>

  

現在我們重啓服務器,便可以從172.16.21.1進行訪問了.現在無論我們被定向到哪個服務器,都不會存在session丟失,也就不存在登錄失效等問題了.


wpsE0B4.tmp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章