最近在學習nginx+tomcat配置,隨着不斷深刻,很快就遇到瓶頸,tomcat集羣以後session就不能共享,話說這個也不難,可是以前沒有作過這方面的配置,java
隨後在就網上查資料,主要配置session共享有兩種nginx
1:memcached (今天講得重點)web
2:ngx_upstream_jvm_routetomcat
第二種偶試過 但是再安裝時,編譯老報錯,對C語言的不瞭解, 無奈之下只好放棄。session
今天重點講 nginx+memcached+tomcat7+session 配置jvm
有關這個資料網上已經翻天了,可是偶在配置老是出錯,以前多是本身沒有理解,後來清楚以後,主要問題在jar上。memcached
因爲官方說的不是很清楚,致使折騰了好久,最終仍是成功了。欣喜萬分,特來跟你們分享下,說的很差的地方,還但願你們多多指教!學習
首先下載必須得軟件 如圖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
讓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沒變 說明成功了!
若是你們還有不明白的地方 能夠聯繫偶!
未完待續……