国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
nginx tomcat集群負(fù)載均衡(實(shí)現(xiàn)session復(fù)制) - talangniao - JavaEye技術(shù)網(wǎng)站

nginx+tomcat集群負(fù)載均衡(實(shí)現(xiàn)session復(fù)制)

關(guān)鍵字: nginx+tomcat集群負(fù)載均衡

 Nginx+tomcat 做負(fù)載均衡

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

架構(gòu)描述

前端一臺(tái)nginx服務(wù)器做負(fù)載均衡器,后端放N臺(tái)tomcat組成集群處理服務(wù),通過nginx轉(zhuǎn)發(fā)到后面(注:沒做動(dòng)靜分離,靜態(tài)動(dòng)態(tài)全部都轉(zhuǎn)給tomcat

優(yōu)點(diǎn):實(shí)現(xiàn)了可彈性化的架構(gòu),在壓力增大的時(shí)候可以臨時(shí)添加tomcat服務(wù)器添加到這個(gè)架構(gòu)里面去

一,配置nginx

1,  下載包

Wget http://sysoev.ru/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;makeinstall

b,安裝nginx

tar zxvfnginx-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個(gè)數(shù),可以按照實(shí)際服務(wù)器來(lái)計(jì)算

worker_processes  8;                

worker_rlimit_nofile 51200;         

events {

    use epoll;

#連接數(shù)

    worker_connections  8192 ;      

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    server_names_hash_bucket_size128;

#    access_log  off;

#    access_log  logs/access.log;

#緩存的時(shí)間,(可以根據(jù)不同文件設(shè)置不同時(shí)間)

 #   expires           2h;      

    tcp_nodelay on;

    keepalive_timeout  30;      

    gzip  on;

    gzip_min_length  10;

    gzip_buffers     48k;

    gzip_http_version 1.1;

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

        sendfile         on;

        tcp_nopush       on;

        reset_timedout_connection  on;

     client_max_body_size 30m; 

#設(shè)定負(fù)載均衡列表       

upstream  backend           

 {                      

server   172.23.254.2:8080;   

server   172.23.254.3:8080;

}

 

#設(shè)定虛擬主機(jī)

server {

        listen       80;

        server_name  www.abc.com;

#對(duì) / 所有做負(fù)載均衡 (本機(jī)nginx采用完全轉(zhuǎn)發(fā),所有請(qǐng)求都轉(zhuǎn)發(fā)到后端的tomcat集群)

       location / {       

        root /web/www ;

       index index.jsp index.htmindex.html;

            proxy_redirect         off;

#保留用戶真實(shí)信息

            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具有負(fù)載均衡能力,可以自動(dòng)判斷下面的機(jī)器,并且自動(dòng)踢出不能正常提供服務(wù)的機(jī)器。

 

 

4,啟動(dòng)程序

/nginx/sbin/nginx

5,編寫啟動(dòng)腳本

Vi nginx.sh

#!/bin/sh

CWD=`pwd`


case $1in
        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,配置數(shù)據(jù)源

            b,優(yōu)化tomcat最大并發(fā)數(shù)

                    <Connectorport="8080" maxHttpHeaderSize="8192"

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

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

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

            c,添加虛擬主機(jī)

(注,主轉(zhuǎn)發(fā)的虛擬主機(jī)必須用localhost,否則nginx不能通過內(nèi)網(wǎng)ip轉(zhuǎn)發(fā),而只有通過域名轉(zhuǎn)發(fā)

            d,測(cè)試

                打開http://ip:8080

                頁(yè)面能訪問則正常

2,  其他的tomcat服務(wù)器也用同樣的配置

三,做tomcat集群

    兩臺(tái)機(jī)器 172.23.254.2  172.23.254.3

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

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

b.找到Cluster標(biāo)簽,去掉注釋,同時(shí)修改tcpListenAddress為本機(jī)ip172.23.254.2 (注:這一段Cluster必須放在hosts里面)

     

2,  修改應(yīng)用的web.xml

修改web應(yīng)用里面WEB-INF目錄下的web.xml文件,加入標(biāo)簽

<distributable/>

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

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

3,  開啟防火墻

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

分別啟動(dòng)兩個(gè)tomcat,查看每一個(gè)tomcat是否都啟動(dòng)了8080端口以及4001端口

再用netstat –an 查看鏈接情況

tcp        0      0172.23.254.2:43320      172.23.254.3:4001      ESTABLISHED

tcp        0      0172.23.254.2:46544      172.23.254.3:4001      TIME_WAIT  

tcp        0      0172.23.254.2:40118      172.23.254.3:4001      ESTABLISHED

tcp        0      0172.23.254.2:4001       172.23.254.3:48804     ESTABLISHED

tcp        0      0172.23.254.2:4001       172.23.254.3:34254     ESTABLISHED

如果兩臺(tái)機(jī)器的4001端口分別建立了連接,則說明集群配置成功,可以進(jìn)行session復(fù)制。

 

 

可能存在的問題

1,  session復(fù)制問題

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

  舉個(gè)簡(jiǎn)單的例子,比如我們?cè)趩螜C(jī)應(yīng)用情況下修改SESSION中用戶的某一個(gè)數(shù)據(jù),那么通常就是:
User user =(User)request.getSession().getAttribute(“user”);
User.setName(“my name”);
    
這樣我們就是直接存取出來(lái),然后進(jìn)行修改,雖然在單機(jī)情況下沒有問題,但是在集群條件下,這樣就導(dǎo)致了多臺(tái)WEB服務(wù)器上的SESSION不同步的問題,因?yàn)?span lang="EN-US">SESSION并沒有改變,Tomcat無(wú)法監(jiān)視session中某個(gè)數(shù)據(jù)的值是否發(fā)生了變化。因此,我們還需要執(zhí)行如下操作以保證SESSION的同步:

Request.getSession().setAttribute(“user”, user);
    
所以,我們?cè)诓僮?span lang="EN-US">SESSION的時(shí)候要特別注意!另外的建議就是,我們應(yīng)該盡可能的不要修改SESSION中的數(shù)據(jù)。

 

  可能經(jīng)常會(huì)遇到session復(fù)制不正常的情況。除了在服務(wù)端找原因再也程序上找下原因。都是有可能導(dǎo)致session復(fù)制不正常的

 

2.頁(yè)面同步

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

     a,rsync同步,或者做成頁(yè)面按鈕,提供給編輯,修改了程序即使點(diǎn)擊同步

     b,共享區(qū)域存儲(chǔ),或者采取drbd網(wǎng)絡(luò)raid模式

 

3,確認(rèn)nginx可以轉(zhuǎn)發(fā)成功,

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Nginx+Tomcat+Memcached集群
nginx tomcat實(shí)現(xiàn)集群負(fù)載均衡
3、單機(jī)運(yùn)行環(huán)境搭建之 --CentOS 安裝tengine
有必要用docker進(jìn)行tomcat負(fù)載嗎?
Nginx+Tomcat+Redis負(fù)載均衡實(shí)現(xiàn)session共享
怎么搭建短視頻系統(tǒng)?全套負(fù)載均衡方案
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服