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

Nginx+tomcat 做負載均衡

系統(tǒng) 2160 0

架構(gòu)描述

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

優(yōu)點:實現(xiàn)了可彈性化的架構(gòu),在壓力增大的時候可以臨時添加tomcat服務器添加到這個架構(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;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個數(shù),可以按照實際服務器來計算

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_size 128;

#????access_log??off;

#????access_log??logs/access.log;

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

?#???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;?

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

upstream??backend???????????

?{??????????????????????

server???172.23.254.2:8080;???

server???172.23.254.3:8080;

}

?

#設(shè)定虛擬主機

server {

????????listen???????80;

????????server_name?? www.abc.com ;

#對?/?所有做負載均衡 (本機nginx采用完全轉(zhuǎn)發(fā),所有請求都轉(zhuǎn)發(fā)到后端的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;???

???????}

}

}

主要在配置proxy與upstream

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

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

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

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

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

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

????????????c,添加虛擬主機

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

????????????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>之前就可以了

這個是加入tomcat的session復制的,做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,不會被轉(zhuǎn)發(fā)到其他的服務器上。在這樣的情況下,tomcat即使不做session復制也不會影響用戶訪問。但是nginx并不支持sticky功能。所以必須要做session復制。否則很多地方就根本沒法用。比如登錄過程,先等到了第一個tomcat上,產(chǎn)生了一個session,在刷新頁面,刷到另外一個tomcat的機器上,沒有這個session,就會出現(xiàn)問題了。所以程序員在寫jsp的時候也要注意這一點

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

?

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

?

2.頁面同步

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

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

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

?

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

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

Nginx+tomcat 做負載均衡


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99热这就是里面只有精品 | 毛片在线免费视频 | 国产激情久久久久影 | 成人毛片免费观看视频 | 国产精品青草久久福利不卡 | 国产精品入口麻豆高清在线 | 天天艹日日干 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aa在线看 | 九九热在线播放 | 精品一区二区三区三区 | 久青草国产在线视频亚瑟影视 | 一本到在线观看视频不卡 | 久热草 | 天天操天天干天天爱 | 国产成人高清亚洲一区91 | 九九热九九 | 国产亚洲精品视频中文字幕 | 欧美亚洲国产激情一区二区 | 国产免费一级在线观看 | 久久综合欧美成人 | 欧美乱xxxxx强 | 伊人久久婷婷丁香六月综合基地 | 福利视频免费 | 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 日韩高清在线日韩大片观看网址 | 欧美伊人| 中文字幕色婷婷在线精品中 | 可以免费观看欧美一级毛片 | 四虎 影院ww9584h | 国产亚洲精品看片在线观看 | 簧片在线播放 | 国产女人视频 | 国产高清成人mv在线观看 | 欧美精品a毛片免费观看 | 国产精品国偷自产在线 | 99re这里只有精品在线 | 男人的天堂一区二区视频在线观看 | 久久91精品国产91久久户 | 五月天久久综合 | 国产精品综合一区二区三区 | 99色视频在线 |