Apache通過mod_proxy模塊連接Tomcat并使用Memcached+MSM做Tomcat會話保持

一 實驗目的

本實驗使用Apache的mod_proxy模塊連接Tomcat, Nginx在前端做負載均衡,并使用Memcahced+MSM的方式保持Tomcat的會話,實現會話共享。

二 實驗拓撲

說明:為測試方便,Memcached與Tomcat安裝在同一機器中,正式環境應該安裝在不同機器中。

1.png

三 實驗環境

主機 IP 安裝組件
node1 192.168.237.132 nginx
node2 192.168.237.129 httpd+tomcat+memcached
node3 192.168.237.130 httpd+tomcat+memcached

四 實驗步驟

1 在node2和node3上安裝tomcat

#安裝Java環境
rpm -ivh jdk-7-linux-x64.rpm   #首先應下載jdk安裝包
注:如系統已安裝了openjdk的包,應先卸載。例:yum remove java-1.7.0-openjdk*
#設置Java的環境變量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME:/bin
source /etc/profile.d/java.sh
#解壓tomcat包
tar xvzf apache-tomcat-7.0.73.tar.gz -C /usr/local/
ln -sv /usr/local/apache-tomcat-7.0.73 /usr/local/tomcat
#設置tomcat環境變量
vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
source /etc/profile.d/tomcat.sh
#啟動tomcat
catalina.sh start

測試訪問,瀏覽器中輸入192.168.237.129:8080, 如下圖所示:

2.png

2 在node2和node3上安裝httpd并配置通過ajp協議代理至tomcat

#安裝httpd
yum install httpd
#配置httpd使得通過ajp協議代理至tomcat
vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html"    #注釋掉主配置文件中的根目錄
#配置虛擬主機
vim /etc/httpd/conf.d/tomcat.conf
<VirtualHost *:80>
  servername a.com
  ProxyRequests Off
  ProxyVia On
  ProxyPreserveHost On
  <Proxy *>
    Require all granted
  </Proxy>
  ProxyPass / ajp://127.0.0.1:8009/
  ProxyPassReverse / ajp://127.0.0.1:8009
  <Location />
    Require all granted
  </Location>
</VirtualHost>

測試訪問,瀏覽器中輸入192.168.237.129, 如下圖所示:

3.png

3 在node2和node3上配置安裝Memcahed+MSM

#安裝memcached
yum install memcached
#啟動memcached
systemctl start memcached
#修改tomcat配置文件
vim /usr/local/tomcat/conf/server.conf   #在<Host>下添加如下內容
<Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">
 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
          memcachedNodes="n1:192.168.237.129:11211,n2:192.168.237.130:11211"
          failoverNodes="n1"
          requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
          transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
 />
</Context>
#創建jsp會話測試文件
mkdir -pv /usr/local/tomcat/webapps/test/{classes,lib,META-INF,WEB-INF}
vim / /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" %>
<html>
  <head><title>TomcatA</title></head>
  <body>
    <h1><font color="red">TomcatA.magedu.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>
注:在node3上把TomcatA變成TomcatB, red變成blue即可

測試訪問,瀏覽器中輸入192.168.237.129/test和192.168.237.130/test, 應如下圖所示:

4.png5.png

#下載MSM的類庫文件并放到/usr/local/tomcat/lib中
[root@node2 ~]# mv javolution-5.4.3.1.jar memcached-session-manager-1.8.3.jar memcached-session-manager-tc7-1.8.3.jar msm-javolution-serializer-1.8.3.jar spymemcached-2.11.1.jar /usr/local/tomcat/lib/
#重新啟動tomcat
catalina.sh stop
catalina.sh start

4 在node1上配置Nginx并配置負載均衡

#安裝nginx
yum install nginx
#配置負載均衡
upstream tomcat_server {
    server 192.168.237.129;
    server 192.168.237.130;
}

server {
    listen       80;
    server_name 192.168.237.132;

location / {
    root /usr/local/tomcat/webapps;
    proxy_pass http://tomcat_server;
}

測試訪問,瀏覽器中輸入192.168.237.132/test, 查看session是否變化。

6.png7.png

可以看出已經實現了session保持。

原創文章,作者:N25_zzc,如若轉載,請注明出處:http://www.www58058.com/66780

(0)
N25_zzcN25_zzc
上一篇 2017-01-17 15:07
下一篇 2017-01-17 20:57

相關推薦

  • 計算機的組成介紹

    一,什么是計算機?     計算機(computer)俗稱電腦,是現代一種用于高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。 二,發展歷史 階段 時期(年) 主要器件 特征 應用領域發展 第一代 1946—1958 電子管數字機 電子管,機…

    2016-10-29
  • 作業:0803日

    1:三種權限rwx對文件和目錄的不同意義:       對文件: r:能夠查看文件內容 w:修改文件內容 x:執行文件,通常文件的執行權限能夠發起一個進程       對目錄: r: 能夠cd進目錄,使用ls查看目錄內的文件列表 w: 能夠…

    Linux干貨 2016-08-05
  • N25-第五周

    – 1     顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;     grep "^[[:space:]]\+" /boot/grub/grub.conf2 顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的…

    Linux干貨 2017-01-02
  • Tomcat及Tomcat集群

    Tomcat集群實現的三種方式 配置 Tomcat1 配置環境 ip a add 192.168.88.101/24 dev ens33 yum install ntpdate -y ntpdate 172.16.0.1 安裝java yum install java-1.8.0-openjdk-devel -y 安裝tomcat yum install t…

    Linux干貨 2017-07-08
  • ip ss route nmcli netstart 命令匯總

    route命令 路由管理命令 查看:route -n [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.101.0 0.0.0.0 255.255.255.0 U 1 0 0 e…

    Linux干貨 2017-05-07
  • 第二十周作業

    1、用Keepalived實現nginx與lvs的高可用集群; lvs+keepalived: 1)后端兩臺rs上安裝web服務并創建探測頁面 ~]# yum install nginx -y ~]# systemctl start nginx.service ~]# vim /usr/share/nginx/html/index.html <h1&g…

    2017-07-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-04-10 16:03

    總結的很好,請繼續保持~~~加油??!

欧美性久久久久