Apache+Tomcat+Memcached實現會話保持

 

會話保持的三種方式

    • Session sticky會話綁定:經過在前端調度器的配置中實現統一session發送至同一後發端服務器
    • Session cluster會話集羣:經過配置Tomcat保持全部Tomcat的session的信息一致。
    • Session server 會話服務:將全部的session交給專門的session服務管理。
      這裏講解第三種,使用Memcached作session server

1、架構圖

 

系統環境

全部服務器所有采用CentOS7.3css

所須要的軟件包

如下文件都要放置在tomcat服務器主機上的類庫目錄中html

rpm -ql tomcat-lib                  # /usr/share/java/tomcat/ # yum安裝默認在此目錄 /usr/local/tomcat/lib # 在官網rpm安裝的默認在此目錄了
memcached-session-manager-1.8.3.jar  http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/1.8.3/ memcached-session-manager-tc7-1.8.3.jar  http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc7/1.8.3/ spymemcached-2.11.1.jar  http://repo1.maven.org/maven2/net/spy/spymemcached/2.11.1/ javolution-5.4.3.1.jar  http://memcached-session-manager.googlecode.com/svn/maven/javolution/javolution/5.4.3.1/ msm-javolution-serializer-1.8.3.jar  http://repo1.maven.org/maven2/de/javakaffee/msm/msm-javolution-serializer/1.8.3/

2、Apache詳細配置

  • 安裝httpd前端

    yum install httpd
  • 建立配置文件
    /etc/httpd/conf.d下新建一個配置文件java

    shell > vim /etc/httpd/conf.d/ajp-tomcat.conf # <proxy balancer://tomcatservers> # 定義主機組 BalancerMember ajp://172.18.68.21:8009 route=tomcatA BalancerMember ajp://172.18.68.22:8009 route=tomcatB ProxySet lbmethod=byrequests </proxy> # <virtualhost *:80> # 建立虛擬主機 ServerName www.baidu.com ProxyVia On ProxyRequests Off ProxyPreserveHost On proxyvia on <Proxy *> Require all granted </Proxy> ProxyPass / balancer://tomcatservers/ # 設定全部調度至後端 ProxyPassReverse / balancer://tomcatservers/ # 設定全部調度至後端 <Location /> # centos7默認拒絕,因此要容許 Require all granted </Location> <Location /balancer-manager> # apache的管理頁面 SetHandler balancer-manager ProxyPass ! # 匹配到apache的管理頁面不代理 Require all granted # 設定容許 </Location> </virtualhost> # shell > systemctl start httpd

3、Tomcat的配置

兩臺tocat的配置大同小異,配置文件基本都相同,僅是後面建立的兩個測試頁面不一樣而已。linux

  • 安裝Tomcatnginx

    yum install tomcat tomcat-admin-webapps tomcat-webapps
  • 修改配置文件
    在/etc/tomcat/下有個server.xml文件,打開這個文件後在host標籤內添加或者修改以下配置。web

    vim /etc/tomcat/server.xml 在host標籤內配置如下內容 <Context path="/myapp" docBase="myapp" reloadable="true"> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.18.68.31:11211,n2:172.18.68.32:11211" #n1:IP:prot爲後端兩個memcached地址 # failoverNodes="n2" # 設定n2備用。因此n1就是主 requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" # 匹配到這些結尾的文件不考慮cookie transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" /> </Context> # 黃色標記部分爲流式化管理工具,若是使用其餘流式化工具,更改這兩個名便可
  • 下載所依賴的軟件包
    將文章最開頭提到的全部.jar文件結尾的文件軟布放置在tomcat服務器主機上的類庫目錄中sql

    rpm -ql tomcat-lib                  # 經過此命令查看.jar文件存放的目錄,就是類庫文件的目錄 /usr/share/java/tomcat/ # yum安裝的tomcat類庫路徑 /usr/local/tomcat/lib # 在官網rpm安裝的tomcat類庫路徑
  • 添加測試頁面
    下面兩個測試頁面各不相相同,因此要在各自的目錄下分別建立。
    在tomcatA中添加測試頁面shell

    shell > mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib} shell > 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>

    在tomcatB中添加測試頁面apache

    shell > mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib} shell > vim /usr/local/tomcat/webapps/test/index.jsp <%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="blue">TomcatB.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> 
  • 啓動服務

    systemctl start tomcat

4、Memcached配置

Mechached基本沒有什麼配置的,安裝上啓動服務便可.

yum install memcached systemctl start memcached

5、測試

使用瀏覽器訪問http://172.18.68.11,而後屢次刷新,只要SessionID這一欄的數值不變就說明session已經保持不變

 

 

 

Ubuntu 17.10上安裝LAMP(Apache,MariaDB,PHP7.1)  http://www.linuxidc.com/Linux/2017-10/148065.htm

Ubuntu 17.10上使用Apache+MariaDB+PHP7.1安裝WordPress  http://www.linuxidc.com/Linux/2017-10/148066.htm

本文永久更新連接地址http://www.linuxidc.com/Linux/2017-11/148718.htm

轉載自aubin

相關文章
相關標籤/搜索