session共享原理和配置

一、session共享原理

在負載均衡的模式下開發,會在不同的服務器上進行訪問,因此同一個客戶端不同的請求可能會產生不同的session,就會產生多次登錄的現象。因此需要session共享,此處我們使用redis將session存儲的形式。

二、sesion共享配置

(1)需要兩個tomcat,並配置不同的端口號
        分別在tomcat1的conf→server.xml中配置
       1. <Server port="18005" shutdown="SHUTDOWN">
       2.<Connector port="18080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
       3. <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
         分別在tomcat2的conf→server.xml中配置
       1. <Server port="28005" shutdown="SHUTDOWN">
       2.<Connector port="28080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
       3. <Connector port="28009" protocol="AJP/1.3" redirectPort="8443" />

(2)在tomcat的webapps ROOT下建立一個向session寫數據的,一個從session得到數據和session的JSP文件
(3)將jedis-2.5.2.jar
      commons-pool.jar
      tomcat-redis-session-manager-2.0.0.jar
     全部拷貝到兩個tomcat的lib下面(這幾個包重寫的tomcat的底層session實現機制)
(4)在兩個tomcat的conf下面的context.xml中加入如下代碼
     <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
    host="localhost"//redis的地址
    port="6379"//redis的端口
    database="0"//redis的數據庫,選擇哪個數據庫
    maxInactiveInterval="60" />
(5)兩個tomcat啓動,啓動ngnix,啓動redis
(6)此時在瀏覽器中可以輸入localhost:18080/write.jsp
                        localhost:18080/read.jsp
(7)此時在瀏覽器中可以輸入localhost:28080/write.jsp
                        localhost:28080/read.jsp
此時得到的是相同的session
    

 

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