首頁  >  文章  >  後端開發  >  Nginx+Tomcat7(tomcat6)+Memcached集群Session共享

Nginx+Tomcat7(tomcat6)+Memcached集群Session共享

WBOY
WBOY原創
2016-08-08 09:30:59990瀏覽

Nginx+Tomcat7+Memcached集群Session共享

原理:

主要利用memcached-session-manager(下面簡稱msm)開源tomcat插件來改變tomcat原始的session存儲機制,將session的存儲放到分佈式緩存中,從而實現對session的共享。

下載

1.      下載nginx

2.      下載tomcat7 (本文介紹的是tomcat7的sessionsion

3.      下載memcached

以上文件在壓縮包內都含有。

說明

1.      這個兩個tomcat 是拷貝的,所以基本上是一模一樣,這裡就不多說了。

2.      apache-tomcat-7.0.57-2存取埠 3存取埠

8082 4.      在8081下webapps->ROOT 中 test.jsp 中有往session中放值,key為name。相反,8082下只是獲取,如在8082下能夠取出這個值,那麼session共享算配置成功了。 (此步驟無需設定nginx叢集)設定1.      將下列jar封包放入tomcat lib目錄下

2.      在conf-> context.xml 檔案

2.  ¢

是填入

memcached

節點

,

多個節點時可以以」,”分開,如host:n1:localhost:120說明下邊有寫,可以了解下。 3.      tomcat -> webapps這裡不多說了,很簡單。 4.      nginx在nginx.conf中全部設定完成,可以去看一下,很簡單。 啟動存取1.      啟動兩個tomcat 2.      啟動nginx ,我這裡nginx放的磁碟是E碟,可自行決定。 3.      訪問http://localhost/test.jsp

4.      連續刷新幾個

如果8081和8082 都能列印出 Nginx+Tomcat…等字樣,恭喜你已成功配置。

Manager標籤屬性說明

1.className  必須類別名稱:de.javakaffee.web.msm.MemcachedBackupSessionManager

2.memcachedNodes 

3.sticky   

可選項

定義

session

方式為黏性或非黏性,預設

tru​​e

,多tomcat

只有非粘性

session

才使用,預設值為nonenone: 從不對ses 請求被要求被鎖定,結束auto: 對於只讀請求,session

將不會被鎖定,如果是非唯讀請求,則

session:會鎖定透過正規表示式的方式來對請求uri以及查詢字串進行匹配,只有匹配上的才會被鎖定。 5.requestUriIgnorePattern   可選項
此屬性是那些不能改備份Session此屬性是那些不能改備份
Session
此屬性是那些不能改備份式的請求。如果像
css,javascript,
圖片等靜態檔案被同一個Tomcat和同一個應用上下文來提供,這些請求也會透過memcached-session-managered-session-managerached-session-managerached-session-managered-session-managered-session-managered。但是這些請求在一個http
會話中幾乎沒什麼改變,所以他們沒必要觸發Session備份。所以那些靜態檔案沒必要觸發

Session備份,你就可以使用此屬性定義。此屬性必須符合javaregex

正規規範。     如:".*.(png|gif|jpg|css|js)$"

6.sessionBackupAsync   可選項指定Session是否應該被非同步保存到Meached是否應該被非同步保存到Meached中。 如果被設定為tru​​ebackupThreadCount設定起作用,如果設定false,透過過動時的時間來作用。

7.backupThreadCount    可選項        sionBackupAsync="true")。預設值      cpu的內核數。 8.sessionBackupTimeout   可選項 設定備份一個Session

設定備份一個Session所用的時間失敗,如果作業時間那麼保存。此屬性只在sessionBackupAsync="false"是運作。預設100毫秒 

 

.  

session-config

>

     

session-timeout>10

session-timeout

>10session-timeout>   session-config>

紅字部分為超時時間,單位為分鐘。

注意:多個web程式共享memcached中的session,根據超時時間配置不同會出現以下情況:1、多個web程序中session有效時間設定一致,失效時間一致;

2、多個web程式中session有效時間設定的不一致,以設定的時間中最短的一個為準。

session的監聽

在web.xml中增加以下程式碼:

<listener>
  <listener-class>
     listener.SessionListener  (根据自己的包名进行配置)
  </listener-class>
  </listener>

範例程式碼:

.下載地址csdn. net/detail/kevon_sun/8371071 


以上就介紹了Nginx+Tomcat7(tomcat6)+Memcached集群Session共享,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn