久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    nginx tomcat集群負載均衡(實現session復制) - talangniao - JavaEye技術網站

     ShangShujie 2010-08-15

    nginx+tomcat集群負載均衡(實現 session復制)

    關鍵字: nginx+tomcat集群負載均衡

     Nginx+tomcat 做負載均衡

    http://blog./u2/83793/showart_1354266.html

    架構描述

    前端一臺nginx服務器做負載均衡器,后端放Ntomcat組成集群處理服務,通過nginx轉發到后面(注:沒做動靜分離,靜態動態全部都轉給tomcat

    優點:實現了可彈性化的架構,在壓力增大的時候可以臨時添加tomcat服務器添 加到這個架構里面去

    一,配置nginx

    1,  下載包

    Wget http:///nginx/nginx-0.6.32.tar.gz

    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

    2,  安裝nginx

        a.安裝pcre

        tar zxvf pcre-7.2.tar.gz

        cd pcre

     ./configure  --prefix = /pcre

     Make;make install

    b,安裝nginx

    tar zxvf nginx-0.6.32.tar.gz

    cd nginx-0.6.32

    ./configure  --prefix=/nginx –with-pcre=/pcre  --with-http_rewrite_module

    Make;make install

    3, 修改配置文件

    Vi /nginx/conf/nginx.conf

     

    #用戶組

    user nobody nobody;                 

    #cpu個數,可以按照實際服務器來計算

    worker_processes  8;                

    worker_rlimit_nofile 51200;         

    events {

        use epoll;

    #連接數

        worker_connections  8192 ;      

    }

    http {

        include       mime.types;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;

    #    access_log  off;

    #    access_log  logs/access.log;

    #緩存的時間,(可以根據不同文件設置不同時間)

     #   expires           2h;      

        tcp_nodelay on;

        keepalive_timeout  30;      

        gzip  on;

        gzip_min_length  10;

        gzip_buffers     4 8k;

        gzip_http_version 1.1;

        gzip_types       text/plain application/x-javascript text/css text/html application/xml;

            sendfile         on;

            tcp_nopush       on;

            reset_timedout_connection  on;

         client_max_body_size 30m; 

    #設定負載均衡列表       

    upstream  backend           

     {                      

    server   172.23.254.2:8080;   

    server   172.23.254.3:8080;

    }

     

    #設定虛擬主機

    server {

            listen       80;

            server_name  www.;

    # / 所有做負載均衡 (本機nginx采 用完全轉發,所有請求都轉發到后端的tomcat集群)

           location / {       

            root /web/www ;

           index index.jsp index.htm index.html;

                proxy_redirect         off;

    #保留用戶真實信息

                proxy_set_header       Host $host;

                  proxy_set_header  X-Real-IP  $remote_addr;

            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

           proxy_pass  http://backend;   

           }

    }

    }

    主要在配置proxyupstream

    Upstream具有負載均衡能力,可以自動判斷下面的機器,并且自動踢出不能正常提供服務的機器。

     

     

    4,啟動程序

    /nginx/sbin/nginx

    5,編寫啟動腳本

    Vi nginx.sh

    #!/bin/sh

    CWD=`pwd`


    case $1 in
            start)
                    /nginx/sbin/nginx;
                            ;;
            stop)
                    kill -2 `ps -ef|grep "/nginx/sbin/nginx"|grep -v "grep"|awk '{print $2}' `
                            ;;
            restart)
                    cd "$CMD"
                    $0 stop
                    $0 start
            ;;
            *)
            echo $"Usage: $0 {start|stop|restart}"
            exit 1
    esac
    exit 0

     

        二,配置tomcat

    1,  下載tomcat5.59

    tar zxvf tomcat5.59

            2,修改配置文件

                a,配置數據源

                b,優化tomcat最大并發數

                        <Connector port="8080" maxHttpHeaderSize="8192"

                   maxThreads="2048" minSpareThreads="100" maxSpareThreads="200"

                   enableLookups="false" redirectPort="8443" acceptCount="500"

                   connectionTimeout="20000" disableUploadTimeout="true" />

                c,添加虛擬主機

    (注,主轉發的虛擬主機必須用localhost,否則nginx不能通過內網ip轉發,而只有通過域名轉發

                d,測試

                    打開http://ip:8080

                    頁面能訪問則正常

    2,  其他的tomcat服務器也用同樣的配置

    三,做tomcat集群

        兩臺機器 172.23.254.2  172.23.254.3

        做集群需要修改的文件配置有三個地方

        1, 修改conf/server.xml配置文件
            a. 
    找到Engine標簽,加入屬性 jvmRoute="worker1"

    b.找到Cluster標簽,去掉注釋,同時修改tcpListenAddress為本機ip 172.23.254.2 (注:這一段Cluster必須放在hosts里面)

         

    2,  修 改應用的web.xml

    修改web應用里面WEB-INF目錄下的web.xml文件,加入標簽

    <distributable/>

    直接加在</web-app>之 前就可以了

    這個是加入tomcatsession復制的,做tomcat集群必須需要這一 步,否則用戶的session就無法正常使用。

    3,  開 啟防火墻

    這兩個tomcat之間必須開啟防火墻信 任。

    分別啟動兩個tomcat,查看每一個tomcat是否都啟動了8080端口以及4001端口

    再用netstat –an 查看鏈接情況

    tcp        0      0 172.23.254.2:43320      172.23.254.3:4001      ESTABLISHED

    tcp        0      0 172.23.254.2:46544      172.23.254.3:4001      TIME_WAIT  

    tcp        0      0 172.23.254.2:40118      172.23.254.3:4001      ESTABLISHED

    tcp        0      0 172.23.254.2:4001       172.23.254.3:48804     ESTABLISHED

    tcp        0      0 172.23.254.2:4001       172.23.254.3:34254     ESTABLISHED

    如果兩臺機器的4001端口分別建立了連 接,則說明集群配置成功,可以進行session復制。

     

     

    可能存在的問題

    1,  session復 制問題

    以前用apache做負載均衡的時候,是選 擇了用 session sticky的模式,這樣的話,用戶每次進來都會是同一個服務器中的session,不會被轉發到其他的服務器上。在這樣的情況下,tomcat即 使不做session復制也不會影響用戶訪問。但是nginx并 不支持sticky功能。所以必須要做session復 制。否則很多地方就根本沒法用。比如登錄過程,先等到了第一個tomcat上,產生了一個session,在刷新頁面,刷到另外一個tomcat的 機器上,沒有這個session,就會出現問題了。所以程序員在寫jsp的時候也要注意這一點

      舉個簡單的例子,比如我們在單機應用情況下修改SESSION中用戶的某一個數據,那么通常就是:
    User user = (User)request.getSession().getAttribute(“user”);
    User.setName(“my name”);
        
    這 樣我們就是直接存取出來,然后進行修改,雖然在單機情況下沒有問題,但是在集群條件下,這樣就導致了多臺WEB服 務器上的SESSION不同步的問題,因為SESSION并 沒有改變,Tomcat無法監視session中 某個數據的值是否發生了變化。因此,我們還需要執行如下操作以保證SESSION的同步:
    Request.getSession().setAttribute(“user”, user);
        
    所以,我們在操作SESSION的時候要特別注意!另外的建議就是,我們應該盡可 能的不要修改SESSION中的數據。

     

      可能經常會遇到session復 制不正常的情況。除了在服務端找原因再也程序上找下原因。都是有可能導致session復制不正常 的

     

    2.頁面同步

         為確保后面tomcat的 服務器上的頁面程序是一致的,可以采用如下方式

         a,rsync同步,或者做成頁面按鈕,提供給編輯,修改了程序即使點擊同步

         b,共享區域存儲,或者采取drbd網 絡raid模式

     

    3,確認nginx可以轉發成功,

    nginxwget一下后面轉發的url(包過端口),如果可以打 開,那就可以轉發過去。如果不能打開,則無法轉發

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产又色又刺激高潮视频| 两个人看的视频WWW在线高清| 国产AV影片麻豆精品传媒| 丰满少妇2中文在线观看| 国产L精品国产亚洲区久久| 福利一区二区不卡国产| 国产精品久久久久免费观看| 国产福利深夜在线播放| JAPANESE国产在线观看播放 | 久久亚洲中文字幕伊人久久大| 亚洲综合在线一区二区三区| 综合激情亚洲丁香社区| 精品无码一区二区三区AV| 少妇和邻居做不戴套视频| 凹凸在线无码免费视频| 久久国产成人亚洲精品影院老金 | 国产精品毛片无码| 亚洲图片自拍偷图区| 污污污污污污WWW网站免费| 国产午夜亚洲精品不卡下载| 116美女极品a级毛片| 国产精品久久久久AV福利动漫 | 91中文字幕在线一区| 久久精品国产亚洲AV麻豆网站| 在线 欧美 中文 亚洲 精品| 精品久久久久久无码人妻热| 色狠狠色噜噜AV一区| 国产一区二区波多野结衣| 色一乱一伦一图一区二区精品| 国产福利在线观看免费第一福利| 国产精品自产拍在线观看| 国产桃色无码视频在线观看| 国内精品免费久久久久电影院97| 亚洲VA成无码人在线观看天堂| A毛片终身免费观看网站| 亚洲日韩一区精品射精| 偷炮少妇宾馆半推半就激情| 亚洲色最新高清AV网站| gogo无码大胆啪啪艺术| 国产欧美日韩一区二区三区| 国产AV无码专区亚洲AV漫画|