一,環境說明
操作系統是Windows7家庭版(有點不專業哦,呵呵!),JDK是1.6的版本,
Tomcat是apache-tomcat-6.0.35-windows-x86,下載鏈接:http://tomcat.apache.org/
Nginx是nginx-1.3.0,下載鏈接:http://nginx.org/en/download.html
Memcached是memcached-1.2.6-win32-bin,下載鏈接:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip,
其他所需jar包,如下列表:
memcached-session-manager-1.6.1,memcached-session-manager-tc6-1.6.1(因為Tomcat版本為6.0)
javolution-5.4.3.1,msm-javolution-serializer-1.6.1(準備使用javolution序列化方式)
spymemcached-2.7.3(依賴包),以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中都可以找到,文檔http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration中詳細介紹了不同的服務器版本,不同的jar包需求。
好,資源已經準備齊全,馬上就可以開始搭建啦!
按照配置的順序,搭建步驟可以分為四個部分:
1,Tomcat的安裝和配置
2,Memcached的安裝和配置
3,Nginx的安裝和配置
4,應用測試
下面將嚴格按照步驟來介紹集群的搭建工作,請參考《Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(二)》
一、Tomcat的配置安裝
既然是要集群,那自然不可能是一個Tomcat咯。將tomcat的安裝包apache-tomcat-6.0.35-windows-x86解壓到X:/ (這個路徑可以自定義),重命名加壓目錄,我將這個目錄改名為“tomcat1”(因為還有第二個tomcat),然后COPY一份tomcat1至X:/目錄,重命名為“tomcat2”。做完上述工作,我的X盤中tomcat的列表如下圖(注意忽略你看到的兩個虛擬機目錄,呵呵!它們與本次任務不相關)。

?????????????? connectionTimeout="20000"
?????????????? redirectPort="8443" />

一、Memcached的安裝和配置
1、 Memcached的安裝
??????將安裝包memcached-1.2.6-win32-bin解壓到X:/目錄下面,重命名為memcached。打開命令提示符,進入X:/memcached的目錄,輸入安裝命令“memcached.exe –d install”,安裝memcached的windows服務,然后輸入“memcached -d start”,以后memcached將作為windows的一個服務每次開機時自動啟動。默認端口:11211。
????? 下面插入介紹一些memcached的常用命名,也是最基本的命令,不然你啟動了memcached,不知道怎么停止這個服務了,也不知道是否已經啟動該服務。
???? (1) 查看memcached的服務是否已經啟動:tasklist /fi "imagename eq memcached.exe",如下圖
???
???? -l 連接的IP地址, 默認是本機
???? -d start 啟動memcached服務
??? -d restart 重起memcached服務
??? -d stop|shutdown 關閉正在運行的memcached服務
??? -d install 安裝memcached服務
??? -d uninstall 卸載memcached服務
??? -u 以的身份運行 (僅在以root運行的時候有效)?
??? -m 最大內存使用,單位MB。默認64MB
??? -M 內存耗盡時返回錯誤,而不是刪除項
??? -c 最大同時連接數,默認是1024
??? -f 塊大小增長因子,默認是1.25
??? -n 最小分配空間,key+value+flags默認是48
??? -h 顯示幫助
?<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"?
??memcachedNodes="n1:localhost:11211"???//目前機器只安裝了一個memcached,所以這里只寫一個節點OK。
??requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"?
??sessionBackupAsync="false"?
??sessionBackupTimeout="100"
??transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"??//序列化類
??copyCollectionsForSerialization="false"/>
更多信息,請查看:http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
一、Nginx的安裝和配置
1、Nginx的安裝
將安裝包nginx-1.3.0.zip解壓到X:/目錄,目錄重命名為nginx。到這里為止,我表示已經安裝完成啦!
啟動Nginx:進入X:/nginx目錄,執行命令:start nginx.exe,彈出屏會一閃而逝。接著輸入tasklist /fi "imagename eq nginx.exe",出現如下內容,表示nginx已正常啟動啦!在瀏覽器輸入http://localhost,可以看到Nginx的歡迎頁。

?更多Nginx常用命令:
停止Nginx:nginx.exe -s stop|quit
重啟Nginx:nginx.exe -s reload
查看Nginx版本:nginx.exe -v
參考頁面:http://hi.baidu.com/ihanxo/blog/item/6d3a8a2688d24ce8d6cae201.html
?
2,Nginx的配置
修改文件$NGINX_HOME/conf/nginx.conf。
??#設定負載均衡的服務器列表
???? upstream 127.0.0.1 {
???????? #weigth參數表示權值,權值越高被分配到的幾率越大
???????? server 127.0.0.1:8081 weight=1;
???????? server 127.0.0.1:8082 weight=1;
???? }
??
??? server {
??????? listen?????? 80;
??????? server_name? localhost;
??????? #charset koi8-r;
??????? #access_log? logs/host.access.log? main;
??????? location / {
??????????? root?? html;
??????????? index? index.html index.htm;
??????????? proxy_pass??? http://127.0.0.1;
??????? }
??? ?}
???? 紅色部分是需要在nginx.conf中添加的內容。
???? 黑色粗體表示當前Nginx監聽的主機名和端口號,在瀏覽器中測試的時候需要輸入的內容。
????proxy_pass表示代理主機,upstream 127.0.0.1 {……}配置中配置了代理主機處理請求的兩個服務。
??? 上述配置表示:Nginx監聽到http://locahost:80的請求之后,轉發到代理127.0.0.1中的兩個服務中的一個,有它們來處理請求。weight表示被分配到權重,weight值越大,處理請求的機會越多。
??? 至此,Nginx的安裝與配置結束。
配置工作已經結束了,馬上開始測試吧!(記得以管理員身份啟動命令提示符窗口)
1、啟動memcached:進入X:/memcached目錄,執行memcached.exe -d start;
2、啟動Nginx:進入X:/nginx目錄,執行start nginx.exe;
3、啟動兩個TOMCAT,分別進入$TOMCAT_HOME/bin目錄,執行start.bat;
4、準備測試頁面test.jsp。
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster Test (TOMCAT1|TOMCAT2)</title></head>
<body>
<%
System.out.println(session.getId());
out.println("<br> This is (TOMCAT1|TOMCAT2),?SESSION ID:" + session.getId()+"<br>");
%>
</body>
</html>
????? 不同的Tomcat下放置不同的文件,以便從結果中看出SESSION共享的效果,即:不論是訪問TOMCAT1還是TOMCAT2,session都是不變的,同一個sessioin。
在瀏覽器輸入http://localhost/test.jsp,然后不停的刷新頁面,即可看到效果了。
我的頁面效果:


楊航收集技術資料,分享給大家
?