<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java技術研究

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    Nginx:session與nginx_upstream_jvm_route(轉)

    轉自http://hanqunfeng.iteye.com/blog/1920994

    1)ip_hash(不推薦使用)

     nginx中的ip_hash技術能夠將某個ip的請求定向到同一臺后端,這樣一來這個ip下的某個客戶端和某個后端就能建立起穩固的session,ip_hash是在upstream配置中定義的: 

     

    Java代碼  收藏代碼
    1. upstream backend {   
    2.     server 127.0.0.1:8080 ;   
    3.     server 127.0.0.1:9090 ;   
    4.     ip_hash;   
    5.     }   

     不推薦使用的原因如下:

     

      1/ nginx不是最前端的服務器。

       ip_hash要求nginx一定是最前端的服務器,否則nginx得不到正確ip,就不能根據ip作hash。譬如使用的是squid為最前端,那么nginx取ip時只能得到squid的服務器ip地址,用這個地址來作分流是肯定錯亂的。 

        2/ nginx的后端還有其它方式的負載均衡。

       假如nginx后端又有其它負載均衡,將請求又通過另外的方式分流了,那么某個客戶端的請求肯定不能定位到同一臺session應用服務器上。

       3/ 多個外網出口。

        很多公司上網有多個出口,多個ip地址,用戶訪問互聯網時候自動切換ip。而且這種情況不在少數。使用 ip_hash 的話對這種情況的用戶無效,無法將某個用戶綁定在固定的tomcat上 。

     

    2)nginx_upstream_jvm_route(nginx擴展,推薦使用)

    nginx_upstream_jvm_route 是一個nginx的擴展模塊,用來實現基于 Cookie 的 Session Sticky 的功能。

    簡單來說,它是基于cookie中的JSESSIONID來決定將請求發送給后端的哪個server,nginx_upstream_jvm_route會在用戶第一次請求后端server時,將響應的server標識綁定到cookie中的JSESSIONID中,從而當用戶發起下一次請求時,nginx會根據JSESSIONID來決定由哪個后端server來處理。

     

    1/ nginx_upstream_jvm_route安裝

    下載地址(svn):http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/

    假設nginx_upstream_jvm_route下載后的路徑為/usr/local/nginx_upstream_jvm_route,

    (1)進入nginx源碼路徑

    patch -p0 < /usr/local/nginx_upstream_jvm_route/jvm_route.patch

    (2)./configure  --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.33 --add-module=/usr/local/nginx_upstream_jvm_route

    (3)make & make install

    關于nginx的下載與安裝參考:http://hanqunfeng.iteye.com/blog/697696

     

    2/ nginx配置

    Java代碼  收藏代碼
    1. upstream  tomcats_jvm_route  
    2.         {  
    3.              # ip_hash;   
    4.               server   192.168.33.10:8090 srun_id=tomcat01;   
    5.               server   192.168.33.11:8090 srun_id=tomcat02;  
    6.               jvm_route $cookie_JSESSIONID|sessionid reverse;  
    7.         }  

     3/ tomcat配置

    修改192.168.33.10:8090tomcat的server.xml,

    Xml代碼  收藏代碼
    1. 將  
    2. <Engine name="Catalina" defaultHost="localhost" >  
    3. 修改為:  
    4. <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat01">  

     同理,在192.168.33.11:8090server.xml中增加jvmRoute="tomcat02"。

    4/ 測試

    啟動tomcat和nginx,訪問nginx代理,使用Google瀏覽器,F12,查看cookie中的JSESSIONID,

    形如:ABCD123456OIUH897SDFSDF.tomcat01 ,刷新也不會變化

    posted on 2014-03-28 11:39 小秦 閱讀(529) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产永久免费高清在线| 成年网站免费入口在线观看| 永久在线观看www免费视频| 亚洲另类激情综合偷自拍图| 爱丫爱丫影院在线观看免费| 精品久久香蕉国产线看观看亚洲| a级片免费在线播放| 国产AV无码专区亚洲Av| 久久青草精品38国产免费| 久久久久久久亚洲Av无码| 67194国产精品免费观看| 亚洲狠狠狠一区二区三区| 99久久免费精品国产72精品九九| 亚洲天堂免费在线| 免费国产在线观看| 99在线免费观看| 亚洲欧洲日产专区| 国产高清免费在线| fc2免费人成在线| 久久久久久久亚洲Av无码| 在线成人a毛片免费播放| 日韩在线观看免费| 久久国产精品亚洲一区二区| 国产人成免费视频网站| 亚洲成a人片在线不卡一二三区| 免费国产精品视频| 久久99精品视免费看| 国产精品亚洲精品青青青| 亚洲欧洲一区二区三区| 日韩人妻无码精品久久免费一 | 一级做a爰片久久免费| 久久精品国产亚洲麻豆| 97在线线免费观看视频在线观看| 国产精品久久亚洲一区二区| 国产AV无码专区亚洲AV毛网站| 亚洲免费综合色在线视频| 9久热这里只有精品免费| 亚洲人成电影在线观看青青| 亚洲国产一成久久精品国产成人综合 | 日本免费观看网站| 国产成年无码久久久免费|