亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

基于nginx的tomcat負載均衡和集群(超簡單)

系統 1813 0

今天看到" 基于apache的tomcat負載均衡和集群配置 "這篇文章成為javaEye熱點。

略看了一下,感覺太復雜,要配置的東西太多,因此在這里寫出一種更簡潔的方法。

?

要集群tomcat主要是解決SESSION共享的問題,因此我利用memcached來保存session,多臺TOMCAT服務器即可共享SESSION了。

?

你可以自己寫tomcat的擴展來保存SESSION到memcached。

這里推薦使用memcached-session-manager這個開源項目( http://code.google.com/p/memcached-session-manager/ ),下面簡稱msm。


如何安裝nginx、memcached、tomcat這些就不多說了。


先說明一下測試環境:

tomcat1、nginx、memcached安裝在192.168.1.11

tomcat2安裝在192.168.1.101


下面分步實現基于nginx的tomcat負載均衡和集群配置

?

一,tomcat集群

??? 1,先下載msm及其依賴包

??? http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar

?

??? http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar

?

http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar

?

http://spymemcached.googlecode.com/files/memcached-2.4.2.jar


http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar

?

2,將這5個包放到$TOMCAT_HOME/lib目錄下


3 ,修改$TOMCAT_HOME/conf/server.xml

?

Xml代碼 復制代碼
  1. < Context ? docBase = "E:/java_codes/TestSession/WebContent" ? path = "" ? reloadable = "true" ? > ??
  2. < Manager ? className = "de.javakaffee.web.msm.MemcachedBackupSessionManager" ??
  3. ???? memcachedNodes = "n1:localhost:11211" ??
  4. ???? requestUriIgnorePattern = ".*\.(png|gif|jpg|css|js)$" ??
  5. ???? sessionBackupAsync = "false" ??
  6. ???? sessionBackupTimeout = "100" ??
  7. ???? transcoderFactoryClass = "de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" ??
  8. ???? copyCollectionsForSerialization = "false" ??
  9. ???? /> ??
  10. </ Context > ??
    <Context docBase="E:/java_codes/TestSession/WebContent" path="" reloadable="true" >
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:localhost:11211"
    requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
    sessionBackupAsync="false"
    sessionBackupTimeout="100"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
    copyCollectionsForSerialization="false"
    />
</Context>
  

?這里的memcachedNodes是填寫memcached節點,多個節點時可以以空隔分開,如:

?n1:localhost:11211 n2:localhost:11212


?sessionBackupTimeout的單位為分鐘

?

? E:/java_codes/TestSession/WebContent 替換成你的WEB目錄

?

? 修改后重啟兩個TOMCAT即可,這個時候已經解決SESSION的共享問題.


二,配置nginx實現負載均衡

?? 以我的nginx.conf為例

Xml代碼 復制代碼
  1. #user??nobody; ??
  2. worker_processes??1; ??
  3. ??
  4. error_log??logs/error.log; ??
  5. ??
  6. events?{ ??
  7. ????worker_connections??1024; ??
  8. } ??
  9. ??
  10. ??
  11. http?{ ??
  12. ????include???????mime.types; ??
  13. ????default_type??application/octet-stream; ??
  14. ??
  15. ????sendfile????????on; ??
  16. ????keepalive_timeout??65; ??
  17. ??
  18. ????#gzip??on; ??
  19. ????upstream??www.docyeah.com???{ ??
  20. ??????????????server???192.168.1.11:8080; ??
  21. ??????????????server???192.168.1.101:8080; ??
  22. ????} ??
  23. ????server?{ ??
  24. ????????listen???????80; ??
  25. ????????server_name??www.docyeah.com; ??
  26. ????????charset?utf-8; ??
  27. ????????location?/?{ ??
  28. ????????????root???html; ??
  29. ????????????index??index.html?index.htm; ??
  30. ????????????proxy_pass????????http://www.docyeah.com; ??
  31. ????????????proxy_set_header??X-Real-IP??$remote_addr; ??
  32. ????????????client_max_body_size??100m; ??
  33. ????????} ??
  34. ??
  35. ??
  36. ????????location?~?^/(WEB-INF)/?{? ??
  37. ????????deny?all;? ??
  38. ????????}? ??
  39. ??
  40. ????????error_page???500?502?503?504??/50x.html; ??
  41. ???????? location ?=?/50x.html?{ ??
  42. ????????????root???html; ??
  43. ????????} ??
  44. ??
  45. ????} ??
  46. }??
    #user  nobody;
worker_processes  1;

error_log  logs/error.log;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;
    upstream  www.docyeah.com   {
              server   192.168.1.11:8080;
              server   192.168.1.101:8080;
    }
    server {
        listen       80;
        server_name  www.docyeah.com;
        charset utf-8;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass        http://www.docyeah.com;
            proxy_set_header  X-Real-IP  $remote_addr;
            client_max_body_size  100m;
        }


        location ~ ^/(WEB-INF)/ { 
	    deny all; 
        } 

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}


  

?

將www.docyeah.com替換成你的域名

192.168.1.11和192.168.1.101替換成你服務器的IP

?

OK,已經完成。啟動nginx即可。


這是我采用的負載均衡及集群方案,希望大家拍磚.

?

ps:javaeye的編輯器有問題,代碼里加顏色后居然變亂了

?

?

nginx在配置upstream時,有兩個參數:
ip_hash(同一IP一直使用同一臺server服務)
weight(server的使用權重,數值越大,nginx分發的請求越多)

通過配合這兩個參數,能粗糙地解決session共享的問題。
對于一些不是太依賴session的應用,或者只有用戶登錄時保存,那么我認為可以用Cookies代替。
即使真的要Session共享,我認為手動寫代碼保存到Memcached比為Tomcat加插件好,這樣能獲得更好的可控性。
而且我不用Tomcat,用Resin,這個msm就用不上啦,不過我會按照我的思想實現session共享,呵呵,個人愚見??!

?

?

嗯,我也試過像你一樣,手動寫代碼將會話寫到MEMCACHED中。但后來覺得在代碼級別來實現集群那不太好。 只是負載均衡的話,的確只要基于訪問IP地址的分發策略就可以了。但這要就不能實現高可用。如果集群中的某臺服務器掛掉,那這臺服務器上的session用戶都將丟失。

這里的memcachedNodes是填寫memcached節點,多個節點時可以以空隔分開,如:
n1:localhost:11211 n2:localhost:11212
sessionBackupTimeout的單位為分鐘
E:/java_codes/TestSession/WebContent 替換成你的WEB目錄
修改后重啟兩個TOMCAT即可,這個時候已經解決SESSION的共享問題

這樣就解決了兩個應用服務器之間session共享的問題?還是同步?,什么原理.講詳細點嘛

基于nginx的tomcat負載均衡和集群(超簡單)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产精品第一区二区 | 国产精品美女一区二区 | a一级日本特黄aaa大片 | 午夜免费福利在线 | 欧美日韩中文在线视频 | 九九热观看视频 | 精品久久免费观看 | 国产伦理一区二区三区 | 日韩欧美亚洲国产精品字幕久久久 | 色色色资源站 | 欧美日韩中文字幕在线 | 亚洲一区精品视频在线 | 色婷婷免费视频 | 在线观看国产久青草 | 色综合狠狠操 | 欧美日韩国产一区二区三区欧 | 欧美日韩在线网站 | 久久精品国产69国产精品亚洲 | 久久精品99成人中文字幕880 | 精品国产视频 | 中文字幕在线精品 | 久草首页在线 | 四虎精品免费永久在线 | 性做久久久久久久免费看 | 狠狠色狠狠综合久久 | 亚洲另类伦春色综合妖色成人网 | 免费人成黄页网站在线观看 | 久久精品国产久金国产思思 | 亚洲激情小视频 | 日本高清毛片视频在线看 | 国产精品免费久久 | 国产精品高清在线观看地址 | 国产毛片一区二区 | 欧美三级成人理伦 | 久草在线视频在线 | 亚洲综合激情另类图片专区 | 手机看片亚洲 | 欧美大香a蕉免费 | 久操国产视频 | 天天干夜操 | 91精品久久国产青草 |