Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

一,環境說明

操作系統是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的列表如下圖(注意忽略你看到的兩個虛擬機目錄,呵呵!它們與本次任務不相關)。

Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(二) - 落羽 - 落羽
接下來的任務就是TOMCAT的配置啦!
操作對象:$TOMCAT_HOME/conf/server.xml文件(這里注意兩個TOMCAT中的文件都要修改)。
修改內容:三個端口號一個命名。
(1) <Server port="8085" shutdown="SHUTDOWN">??(tomcat2中可以為“8086”)
(2) <Connector port="8080" protocol="HTTP/1.1"??????(tomcat2中可以為“8081”)
?????????????? connectionTimeout="20000"
?????????????? redirectPort="8443" />
(3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />???(tomcat2中可以為“8089”)
(4) <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">?? (tomcat2中可以為“tomcat2”)
上面紅色部分是需要修改和增加的內容,確保tomcat1和tomcat2兩個目錄下server.xml中的4個值不相同。
?
下面測試Tomcat是否安裝成功。進入$TOMCAT_HOME/bin,運行start.bat文件,出現下圖結果,表示tomcat已啟動。
Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(二) - 落羽 - 落羽
按照上述方法同時啟動前面安裝的兩個TOMCAT。打開瀏覽器,分別輸入http://localhost:{端口號},如果看到Tomcat的歡迎頁,一個奔跑中的大貓,表示第一步驟已經成功完成。如果未成功,那就要仔細查看控制臺的錯誤信息,通常是端口號沖突,一定要確保配置的端口號是未使用的端口號。
一、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",如下圖

??? Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(三) - 落羽 - 落羽

(2)? memcached參數使用介紹(Win7用戶要以管理員身份啟動命令窗口哦!)
-p 監聽的端口
???? -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 顯示幫助
2、memcached的配置
(1)把《Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(一)》中提到的jar包(總共是5個),COPY到兩個TOMCAT安裝目錄下的lib/中。
(2)修改文件$TOMCAT/conf/context.xml(兩個tomcat中的都需要修改),在Context標簽中加入如下代碼:

?<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的歡迎頁。

Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(三) - 落羽 - 落羽

?更多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,然后不停的刷新頁面,即可看到效果了。

我的頁面效果:

Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(四) - 落羽 - 落羽
Windows7 + Nginx + Memcached + Tomcat 集群 session 共享(四) - 落羽 - 落羽
結果說明:n1:memcached節點ID,我們在$TOMCAT/conf/context.xml中僅配置了一個節點,ID為“n1”,顯示的sessionID就是存儲在這個節點上的,后面跟著的tomcatN,表示目前所訪問的web應用服務器的名稱,這個值在$TOMCAT_HOME/conf/server.xml中的<Engine>標簽的jvmRoute屬性中已配置。

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


?



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git 版本控制(一)

新建代碼庫repository 1、在當前目錄新建一個git代碼庫 git init git init projectname 2、下載一個項目&#xff0c;如果已經有了遠端的代碼&#xff0c;則可以使用clone下載 git clone url 增加/刪除/改名文件 1、添加指定文件到暫存區 git add filename 2、添加指定目錄到暫…

rollup學習小記

周末在家重構網關的Npm包&#xff0c;用到了rollup&#xff0c;記下筆記 rollup適合庫library的開發&#xff0c;而webpack適合應用程序的開發。 rollup也支持tree-shaking&#xff0c;自帶的功能。 package.json 也具有 module 字段&#xff0c;像 Rollup 和 webpack 2 這樣的…

大數據 vr csdn_VR中的數據可視化如何革命化科學

大數據 vr csdnAstronomy has become a big data discipline, and the ever growing databases in modern astronomy pose many new challenges for analysts. Scientists are more frequently turning to artificial intelligence and machine learning algorithms to analyze…

object-c 日志

printf和NSlog區別 NSLog會自動加上換行符&#xff0c;不需要自己添加換行符&#xff0c;NSLog會加上時間和進程信息&#xff0c;而printf僅將輸入的內容輸出不會添加任何額外的東西。兩者的輸入類型也是有區別的NSLog期待NSString*&#xff0c;而printf期待const char *。最本…

計算機真正管理的文件名是什么,計算機題,請大家多多幫忙,謝謝

4、在資源管理器中&#xff0c;若想顯示文件名、文件大小和文件類型&#xff0c;應采用什么顯示方式。( )A、小圖標顯示 B、列表顯示 C、詳細資料顯示 D、縮略圖顯示5、在EXCEL中&#xff0c;可以依據不同要求來提取和匯總數據&#xff0c;4、在資源管理器中&#xff0c;若想顯…

小a的排列

鏈接&#xff1a;https://ac.nowcoder.com/acm/contest/317/G來源&#xff1a;牛客網小a有一個長度為nn的排列。定義一段區間是"萌"的&#xff0c;當且僅當把區間中各個數排序后相鄰元素的差為11 現在他想知道包含數x,yx,y的長度最小的"萌"區間的左右端點 …

Xcode做簡易計算器

1.創建一個新項目&#xff0c;選擇“View-based Application”。輸入名字“Cal”&#xff0c;這時會有如下界面。 2.選擇Resources->CalViewController.xib并雙擊&#xff0c;便打開了資源編輯對話框。 3.我們會看到幾個窗口。其中有一個上面寫著Library&#xff0c;這里…

計算機 編程 教程 pdf,計算機專業教程-第3章編程接口介紹.pdf

下載第3章 編程接口介紹? DB2 UDB應用程序概述? 嵌入S Q L編程? CLI/ODBC應用程序? JAVA應用程序? DAO 、R D O 、A D O應用程序本章將介紹對DB2 UDB 可用的編程方法及其特色&#xff0c;其中一些方法附有簡單的例子&#xff0c;在這些例子中&#xff0c;有些并不是只適用…

導入數據庫怎么導入_導入必要的庫

導入數據庫怎么導入重點 (Top highlight)With the increasing popularity of machine learning, many traders are looking for ways in which they can “teach” a computer to trade for them. This process is called algorithmic trading (sometimes called algo-trading)…

windows查看系統版本號

windows查看系統版本號 winR,輸入cmd&#xff0c;確定&#xff0c;打開命令窗口&#xff0c;輸入msinfo32&#xff0c;注意要在英文狀態下輸入&#xff0c;回車。然后在彈出的窗口中就可以看到系統的具體版本號了。 winR,輸入cmd&#xff0c;確定&#xff0c;打開命令窗口&…

02:Kubernetes集群部署——平臺環境規劃

1、官方提供的三種部署方式&#xff1a; minikube&#xff1a; Minikube是一個工具&#xff0c;可以在本地快速運行一個單點的Kubernetes&#xff0c;僅用于嘗試Kubernetes或日常開發的用戶使用。部署地址&#xff1a;https://kubernetes.io/docs/setup/minikube/kubeadm Kubea…

更便捷的畫決策分支圖的工具_做出更好決策的3個要素

更便捷的畫決策分支圖的工具Have you ever wondered:您是否曾經想過&#xff1a; How did Google dominate 92.1% of the search engine market share? Google如何占領搜索引擎92.1&#xff05;的市場份額&#xff1f; How did Facebook achieve 74.1% of social media marke…

供來賓訪問計算機打開安全嗎,計算機安全設置操作手冊(22頁)-原創力文檔

計算機安全設置操作手冊ISO27001項目實施電腦配置(以XP為例)賬戶設置user每臺電腦設置administrator和user帳戶&#xff1b;管理員賬戶密碼至少 8位, 賬戶至少6位user將Administrator和user賬戶以外的其他賬戶禁用用具體步驟如下&#xff1a;、右擊【我的電腦】選擇【管理】如圖…

Windows半透明窗口開發技巧

Windows半透明窗口開發技巧 www.visual-gear.com 原創技術文章 在windows平臺上從窗口繪圖有兩種方法&#xff1a; 第一種響應窗口的WM_PAINT消息&#xff0c;使用窗口DC進行繪制 第二種是將窗口樣式設置為層窗口&#xff0c;即 WS_EX_LAYERED設置為該樣式之后窗口將不會產生任…

標識為普通SQL語法

在SQL語句的最前面增加 /*dialect*/轉載于:https://www.cnblogs.com/zouhuaxin/p/10333209.html

的界面跳轉

在界面的跳轉有兩種方法&#xff0c;一種方法是先刪除原來的界面&#xff0c;然后在插入新的界面&#xff1a;如下代碼 if (self.rootViewController.view.superview nil) { [singleDollController.view removeFromSuperview]; [self.view insertSubview:rootViewControlle…

計算性能提升100倍,Uber推出機器學習可視化調試工具

為了讓模型迭代過程更加可操作&#xff0c;并能夠提供更多的信息&#xff0c;Uber 開發了一個用于機器學習性能診斷和模型調試的可視化工具——Manifold。機器學習在 Uber 平臺上得到了廣泛的應用&#xff0c;以支持智能決策制定和特征預測&#xff08;如 ETA 預測 及 欺詐檢測…

計算機應用基礎成教作業,(計算機應用基礎成教08A卷1.doc

一、判斷題(每空1分&#xff0c;共10分&#xff0c;正確填A錯誤填B)1、計算機按照用途劃分可以分為數字計算機、模擬計算機、數字模擬混合式計算機。()2、微型計算機就是指體積微小的計算機。()3、WindowsXP的窗口是不可改變大小的。( )4、操作系統是用戶和計算機之間的接口。…

iPhone程序運行流程淺談

1. 和大多數語言一樣&#xff0c;每一個iPhone應用也都是從主函數開始運行&#xff0c;它的main函數都在XCode的Other Reasource邏輯目錄下。 [cpp] view plaincopyprint?UIApplicationMain(argc, argv, nil, nil); [cpp] view plaincopyprint?UIApplicationMain(argc, arg…

Trie樹kmpAC自動機后綴數組Manacher

Trie 計數Trie&#xff0c;讀清題意很重要 https://vjudge.net/problem/UVALive-5913 kmp AC自動機 模板&#xff1a;https://vjudge.net/problem/UVA-11488 https://vjudge.net/problem/UVA-11019 https://vjudge.net/problem/UVA-11468 https://vjudge.net/problem/UVALive-4…