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

基于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條評論
主站蜘蛛池模板: 怡红院免费va男人的天堂 | 成 人 黄 色 视频 免费观看 | 久久久久国产 | 黄色网毛片| 色偷偷在线刺激免费视频 | 久久国产精品免费观看 | 99热在线这里只有精品 | 成人综合婷婷国产精品久久免费 | 亚洲国产高清人在线 | 日日干天天草 | 色综合久久久久久久久五月 | 日韩一区二区在线观看 | 60欧美老妇做爰视频 | 国产亚洲女在线精品 | 久久国产色 | 久久一区不卡中文字幕 | 精品美女在线观看 | 国产亚洲欧美ai在线看片 | 日本一级毛片免费播 | 二区视频 | 亚洲啪啪免费视频 | 亚洲精品国产一区二区三 | 亚洲综合干 | 2021国产精品自产拍在线观看 | 伊人精品视频一区二区三区 | 中文字幕一级毛片 | 日韩麻豆国产精品欧美 | 欧美激情亚洲激情 | 99热精品免费 | 亚洲免费网| 国产精品成人免费视频 | 日韩欧美高清 | 久久咪咪爱 | 亚洲一级毛片在线观播放 | 久久综合视频网站 | 久久ri精品高清一区二区三区 | 爱爱爱免费视频 | 午夜精品网站 | 狠狠色噜噜狠狠狠狠97不卡 | 亚洲视频 欧美视频 | 欧洲视频一区 |