一 搭建環境
操作系統:windows 7 64位
http server:nginx 1.9.7
緩存系統:memcached
Servlet容器:apache-tomcat-7.0.65
二 搭建步驟
1.為了方便測試,將tomcat復制為兩份,避免tomcat端口號沖突,修改tomcat\conf\server.xml 端口號。
2.在兩個tomcat\webapps下建立文件夾,並新建一個jsp文件,文件內容為<%=session.getId()%> 為了區別跳轉的路徑可以在內容中追加編號,例如tomcat1、tomcat2。
3.啟動兩個tomcat並訪問 http://localhost:port/<新建的文件夾>/<jsp文件>。此時兩個tomcat是獨立運行的。我們需要配置nginx將兩個tomcat集成起來。
4.修改ngxig\conf\nginx.conf配置文件
upstream test{
server ip:port;
server ip:port;
}
server {
listen 80;
server_name ip;
#charset koi8-r;
#access_log logs/host.access.log main;
location /test{
root jsp;
index login.jsp;
proxy_pass http://test; (test為upstream配置的別名)
}
5.通過cmd命令行工具進入nginx使用命令 nginx啟動。
Ps:ngxin常用命令:啟動 nginx,停止 ngxin -s stop,重啟nginx -s reload,如果發現命令無效,可以打開任務管理器將nginx進程結束掉再執行啟動命令。
6.按照上面給出的例子通過瀏覽器訪問 http://localhot/<文件夾>/<jsp文件>就能訪問jsp頁面。按F5刷新可以看到請求頁面是在兩個jsp頁面切換,sessionId不斷的更換。
7.停止tomcat,將下載好的memcached相關的jar包放到tomcat\lib下
Ps:這里要注意tomcat和jar包的版本,可以去google code上去查看,針對tomcat 7 的jar包已上傳至 \\192.168.0.212\SoftBank\jar\memcached 中。
8.解壓memcached,使用cmd命令進入該目錄,執行 memcached -d install命令,安裝好后,使用memcached -d start啟動memcached服務。
9.修改tomcat\conf\context.xm文件,將以下內容天下到<context></context>標簽內。
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:ip:port" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false"/>
添加好后,修改IP和端口。
10.啟動tomcat,訪問nginx配置的路徑,http://localhot/<文件夾>/<jsp文件> 此時再按F5刷新頁面會看到無論訪問哪個頁面sessionID都是一致的。