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.MemcachedBackupSessionManager2.memcachedNodes
3.sticky 可選項定義session方式為黏性或非黏性,預設true,多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中。 如果被設定為true,backupThreadCount設定起作用,如果設定false,透過過動時的時間來作用。 7.backupThreadCount 可選項 sionBackupAsync="true")。預設值
為 cpu的內核數。 8.sessionBackupTimeout 可選項 設定備份一個Session 設定備份一個Session所用的時間失敗,如果作業時間那麼保存。此屬性只在sessionBackupAsync="false"是運作。預設100毫秒
. session-config >
>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教程有興趣的朋友有所幫助。