沒有搭建好nginx環境的同學,請參考我的上一篇部落格
nginx負載平衡初探
實驗環境
win7:tomcat6+jdk6+memcached
linux:vmware9+ubuntu+jdk6+nginx+tomcat6+memcached
首先在window是下安裝memcached
memcached-1.2.6-win32-bin.zip,64 位元下也可以
memcached.exe -d install 安裝為windows服務
memcached.exe -d start 設定服務為開機啟動
其次配置memcached的連接埠,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\memcached Server
ImagePath:"D:\java學習\nginx負載平衡配置\windows安裝包\memcached.exe" -p 12345 -m 128 -d runservice
其中12345是memcached的連接埠,在tomcat的conf/context..xml中需要用到
配置tomcat的conf/context..xml
linux、windows的tomcat的conf/context.xml配置方法一樣<?xml version='1.0' encoding='utf-8'?><Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:192.168.0.108:12345 n2:192.168.110.130:12345"requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"sessionBackupAsync="false"sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"copyCollectionsForSerialization="false" /> </Context>
在tomcat的lib下放入五個jar包
javolution-5.4.3.1.jar
memcached-2.6.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
linux下安裝memcached
libevent-1.3.tar.gz
memcached-1.2.2.tar.gz
使用tar解壓~~
首先安裝libevent
進入/usr/local/memcache install files/libevent-1.3解壓後的libevent目錄
#可以在後面加入參數,安裝路徑.不加的話預設安裝到usr/local/lib
./configure
#編譯
make
#安裝
make install
查看是否安裝成功
進入 ls usr/local/bin/lib/*.so,顯示如下則是安裝成功
zhengx@zhengx-virtual-machine:/$ ls usr/local/lib/*.sousr/local/lib/libevent.so
其次,在linux下安裝memcached
進入/usr/local/memcache install files/libevent-1.3/memcached-1.2.2。解壓後的memcached目錄
#–with-libevent=/usr/local/lib一定要加上去,否則安裝失敗!/usr/local/lib為libevent的安裝目錄
./configure –with-libevent=/usr/local/lib
make
make install
如有不能建立目錄的error,執行sudo chmod 777 /usr/local -R
啟動memcached的方式
/usr/local/bin/memcached -d -m 256 -u root -l 192.168.1.5 -p 12345 -c 256 -P /data/memcached/memcached.pid
配置linux的tomcat,和win7一樣
然後在瀏覽器中http://192.168.110.130/t/,session不會變了
| 伺服器IP: |
192.168.0.108 |
| 會話Id: |
AAB11F62F8E5631B35BD92F5230AD4D5-n1 |
| 會話建立時間: |
Thu Jul 11 20:56:57 CST 2013 |
| 最後一次會話時間: |
Thu Jul 11 17:34:12 CST 2013 |
| 會話字串: |
org.apache.catalina.session.StandardSessionFacade@fe30af |
再次重新整理,注意查看會話id(session_id)
| 伺服器IP: |
192.168.110.130 |
| 會話Id: |
AAB11F62F8E5631B35BD92F5230AD4D5-n1 |
| 會話建立時間: |
Thu Jul 11 20:56:57 CST 2013 |
| 最後一次會話時間: |
Thu Jul 11 20:56:59 CST 2013 |
| 會話字串: |
org.apache.catalina.session.StandardSessionFacade@136e7f3 |
在tomcat1中session.setAttribute(key,value)。在tomcat2中session.getAttribute(key);測試
| 伺服器IP: |
192.168.0.108 |
| 會話Id: |
7BF5B9DFCB6F35A49BA9FA9EF3813434-n1 |
| |
|
| |
|
| |
|
| 從會話中取value: |
我是windows上的tomcat |
注意伺服器的啟動順序:首先啟動nginx,其次啟動tomcat1和tomcat2
| 伺服器IP: |
192.168.110.130 |
| 會話Id: |
7BF5B9DFCB6F35A49BA9FA9EF3813434-n1 |
| 會話建立時間: |
Tue Jul 16 16:43:23 CST 2013 |
| 最後一次會話時間: |
Tue Jul 16 16:45:29 CST 2013 |
| 會話字串: |
org.apache.catalina.session.StandardSessionFacade@1162cdf |
| 從會話中取value: |
我是windows上的tomcat |