Nginx+memcached+tomcat7+session

Nginx+memcached+tomcat7+session

前言

最近在學習nginx+tomcat配置,隨着不斷深刻,很快就遇到瓶頸,tomcat集羣以後session就不能共享,話說這個也不難,可是以前沒有作過這方面的配置,java

隨後在就網上查資料,主要配置session共享有兩種nginx

1memcached (今天講得重點)web

2ngx_upstream_jvm_routetomcat

第二種偶試過 但是再安裝時,編譯老報錯,對C語言的不瞭解, 無奈之下只好放棄。session

今天重點講 nginx+memcached+tomcat7+session 配置jvm

有關這個資料網上已經翻天了,可是偶在配置老是出錯,以前多是本身沒有理解,後來清楚以後,主要問題在jar上。memcached

因爲官方說的不是很清楚,致使折騰了好久,最終仍是成功了。欣喜萬分,特來跟你們分享下,說的很差的地方,還但願你們多多指教!學習

1.安裝

首先下載必須得軟件 如圖spa

這裏主要講memcached日誌

先下載libevent-1.4.14b-stable.tar.gz和memcached-1.4.7.tar.gz的源碼包,前者是後者的依賴包,就是一個事件驅動的包。

  2)編譯安裝命令:

1.  tar zxvf libevent-1.4.14b-stable.tar.gz 

2.  cd libevent-1.4.14b-stable 

3.  ./configure --prefix=/usr/local/libevent-1.4.14b 

4.  make 

5.  make install 

6.   

7.  tar zxvf memcached-1.4.7.tar.gz 

8.  cd memcached-1.4.7 

9.  ./configure --prefix=/usr/local/memcached-1.4.7 --with-libevent=/usr/local/libevent-1.4.14b/ 

10. make 

11. make install 

啓動memcached:

./bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /tmp/memcached.pid –vv

 

 

2.memcached-session-manager配置

 

讓tomcat調用memcached來存儲session早就是一個很成熟的解決方案了,開源的msm就能夠解決這個問題。比較折騰的就是要用到的jar包,官方文檔說的也比較含糊,我這裏用的是kryo的序列化方案,因此用到的包多一些,分別是

以上這些包都放在$CATALINA_HOME/lib目錄下。

接下來是修改tomcat的配置文件$CATALINA_HOME/conf/context.xml,調整成新的session存儲方式。配置文件中加入如下內容:

1.  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

2.        memcachedNodes="n1:127.0.0.1:11211" 

3.        sticky="false" 

4.        lockingMode="auto" 

5.        sessionBackupAsync="false"   

6.        sessionBackupTimeout="1000"  

7.        transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" 

8.        /> 

 在$CATALINA_HOME/conf/logging.properties文件中添加de.javakaffee.web.msm.level=FINE,就能夠在catalina.out的日誌中看到詳細的session存取狀況。

 修改$CATALINA_HOME/conf/server.xml,多個tomcat更改端口不要同樣,確保端口的惟一,不然啓動會報錯,致使啓動不了

而後啓動各個服務 如圖

 

頁面有變化,可是sessionID沒變 說明成功了!

若是你們還有不明白的地方 能夠聯繫偶!

未完待續……

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息