日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx+memcached+tomcat配置集群session共享负载均衡

發布時間:2024/4/15 Nginx 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx+memcached+tomcat配置集群session共享负载均衡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Nginx+memcached+tomcat配置集群session共享負載均衡

配置環境:

windows xp下

jdk1.7.0_10 ? ? ?nginx-1.2.6 ?(附下載) ? ???memcached-1.2.6-win32-bin.zip?(附下載) ? ?tomcat7.0.12

*(注意:nginx負載均衡不會有太大問題,但是,在用memcached配置session共享的時候,tomcat的版本可能成為關系到成敗的關鍵,

一開始用的tomcat7.0.34,總是拋出異常,原因應該是沒有匹配最新tomcat的memcached 的jar包)

?

1、首先用nginx來搭建三臺tomcat服務器的負載均衡環境,如何在一臺機器啟動三個tomcat請參照《在一臺機器上啟動三個tomcat》

  我的tomcat的端口分別是8081,8082,8083

  解壓下載的nginx壓縮包,我的路徑是D:\MyServer;

  在D:\MyServer\nginx-1.2.6\conf 下找到?nginx.conf,該文件為nginx的請求分發配置文件,打開nginx.conf做如下修改:

?   (1)在http {…} - server{…} - location / {…}中加入一行:“proxy_pass ?http://127.0.0.1;”

    修改后如下: ??

         location / {root html;index index.html index.htm;proxy_pass http://127.0.0.1;}

  

?  (2)在http {…}中加入以下代碼:

       #設定負載均衡的服務器列表upstream 127.0.0.1 {#weigth參數表示權值,權值越高被分配到的幾率越大server 127.0.0.1:8081 weight=1;server 127.0.0.1:8082 weight=2;server 127.0.0.1:8082 weight=3;}

  

  可以進行請求分發的簡單測試,

  啟動nginx,打開cmd,進入到?D:\MyServer\nginx-1.2.6\ 路徑下 輸入nginx 敲回車,調度處任務管理器看到進程里面有nginx則表示啟動成功

  啟動三臺tomcat

  用eclipse新建一個web項目cluster,該項目下新建一個clustertest.jsp文件,編輯該文件內容如下:

<%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*" %> <html><head><title>Cluster Test</title></head> <body> <% //HttpSession session = request.getSession(true); System.out.println(session.getId()); out.println("<br> SESSION ID:" + session.getId()+"<br>"); // 如果有新的請求,則添加session屬性 String name = request.getParameter("name"); if (name != null && name.length() > 0) { String value = request.getParameter("value"); session.setAttribute(name, value); } out.print("<b>Session List:</b>"); Enumeration<String> names = session.getAttributeNames(); while (names.hasMoreElements()) { String sname = names.nextElement(); String value = session.getAttribute(sname).toString(); out.println( sname + " = " + value+"<br>"); System.out.println( sname + " = " + value); } %> </body> </html>

  修改tomcat\conf\server.xml?

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7-1">

    對應的另外兩臺tomcat分別是

    tomcat7-2     tomcat7-3

  將cluster項目打包成war包分別放到每個tomcat的webapps下

  在瀏覽器中輸入localhost:8080/cluster/clustertest.jsp?重復刷新可以看到輸出的session值在變化說明分發處理成功

2、使用memcached來實現三個tomcat共享session

    解壓一開始下載好的memcached壓縮包到指定路徑,我的是D:\MyServer (解壓就得到一個memcached.exe文件)

    下載如下jar包,點擊下載spymemcached-2.7.3.jar

    其他jar包可以從如下鏈接找到:http://code.google.com/p/memcached-session-manager/downloads/list

? ? ? ? ? ?

    *(注意本次測試用的tomcat7,所以對應的jar包是memcached-session-manager-tc7-1.6.3.jar?,

      如果使用的是tomcat6 則下載memcached-session-manager-tc6-1.6.3.jar)

   好了,把上述jar包放到tomcat/lib 目錄下,然后在測試的項目中也導入上述jar包,修改每個tomcat的配置文件tomcat\conf\context.xml

  在<context>...</context>標簽之間加入如下代碼:

  <ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" sessionBackupAsync="false" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  />

關閉所有tomcat,打開cmd 進入memcached解壓到的路徑D:\MyServer 輸入:memcached.exe –d install 回車安裝windows服務

輸入:memcached.exe –p 11211 –d start 回車啟動memcached服務,啟動三個tomcat

在瀏覽器中輸入localhost:8080/cluster/clustertest.jsp? 重復刷新發現session的值不變如下所示,session共享成功

SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1

posted on 2013-01-22 15:52?針尖上的舞者 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/fish-king/archive/2013/01/22/2871531.html

總結

以上是生活随笔為你收集整理的Nginx+memcached+tomcat配置集群session共享负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。