<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品视频在线| 亚洲中久无码不卡永久在线观看| 亚洲一区二区三区AV无码| 人妻免费久久久久久久了| 色婷婷亚洲一区二区三区| 中国内地毛片免费高清| 91手机看片国产永久免费| 日韩毛片免费在线观看| 亚洲精品无码专区在线在线播放 | 国产一区二区视频免费| 欧美日韩亚洲精品| 中文字幕在线免费| 亚洲成人一区二区| 国产精品无码永久免费888| 青青青国产在线观看免费| 久久久久无码专区亚洲av| 亚洲天堂免费在线视频| 亚洲韩国精品无码一区二区三区 | 97在线观看永久免费视频| 在线亚洲高清揄拍自拍一品区| 免费看的黄色大片| 日日摸夜夜添夜夜免费视频| 亚洲色偷偷偷鲁综合| 免费A级毛片在线播放| 亚洲中文字幕久久久一区| 一本久久综合亚洲鲁鲁五月天 | 亚洲免费在线视频播放| 久久久久国产成人精品亚洲午夜| 中文字幕乱码免费看电影| 亚洲第一页中文字幕| 免费国产成人18在线观看| 亚洲欧洲精品视频在线观看| 国产精品麻豆免费版| 中文字幕手机在线免费看电影 | 亚洲а∨天堂久久精品| 免费看搞黄视频网站| 国产精品亚洲精品青青青| 亚洲精品亚洲人成在线观看下载| 免费A级毛片无码A∨| 亚洲av无码专区亚洲av不卡| 亚洲av无码不卡|