nginx做負載均衡時session共享

1.tomcat/lib 目錄下添加下面jar包

http://download.csdn.net/detail/haiking5253/7172653

2、在虛擬服務器配置文件server.xml的context標籤中,也可以在context.xml的context標籤中裏面加入表示全局配置以下內容:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.1.201:11211"
requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
sticky="false"
sessionBackupAsync="false"
sessionBackupTimeout="1800000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

標籤說明:

    className 此屬性是必須的。
    memcachedNodes  此屬性是必須的,這個屬性必須包含你所有運行的memcached節點,每個節 點的定義格式爲<id>:<host>:<port>, 多個之間用空格或半角逗號隔。
    requestUriIgnorePattern  可選項, 此屬性是那些不需備份Session的請求的正則表達式。
    sessionBackupAsync  設置爲false即是設置爲非沾粘session。
    sessionBackupTimeout  可選項,默認100,單位毫秒。
    transcoderFactoryClass 可選,默認爲 de.javakaffee.web.msm.JavaSerializationTranscoderFactory,上述配置使用kryo策略,效率主要體現在高併發下。

3、修改 linux 的profile文件 vim /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH

 修改 tomcat 的 startup.sh 和 shutdown.sh 在最後加入相同內容
export JAVA_HOME=/usr/java/jdk1.7.0
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin

一臺物理服務器多個虛擬服務器,需要增加每個節點都不同的jvmRoute標籤:
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat201B">

4、啓動memcached並且通過IP方式訪問:
        /usr/local/memcached/bin/memcached -d -m 64 -l 192.168.1.201 -p 11211 -u root -P /usr/local/memcached/memcached.pid 

5、測試jsp,查看sessionid

SessionID:<%=session.getId()%> <BR> SessionIP:<%=request.getServerName()%> <BR> SessionPort:<%=request.getServerPort()%>

發佈了15 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章