Tomcat+Nginx負載均衡集群由Linux環(huán)境搭建

Tomcat服務(wù)器是一個免費的開放源代碼的web應(yīng)用服務(wù)器婚惫,屬于輕量級應(yīng)用服務(wù)器,是開發(fā)和調(diào)試JSP程序的首選。由于Tomcat處理靜態(tài)HTML的能力運不及Apache或者Nginx,所以Tomcat通常是作為一個Servlet和JSP容器,單獨運行在后端肴甸。

Nginx服務(wù)器能支持高達50000個并發(fā)連接數(shù)的響應(yīng),擁有強大的靜態(tài)資源處理能力囚巴,運行穩(wěn)定原在,并且內(nèi)存友扰、CPU等系統(tǒng)資源消耗非常低.

通常情況下,一個Tomcat站點由于可能出現(xiàn)單點故障及無法應(yīng)付過多客戶復(fù)雜請求等問題庶柿,不能單獨應(yīng)用于生產(chǎn)環(huán)境下村怪,目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器作為后端網(wǎng)站程序的反向代理及負載均衡器,簡單來說就是Nginx作為負載均衡器浮庐,響應(yīng)客戶端的請求甚负,Tomcat作為應(yīng)用服務(wù)器的負載集群,處理客戶端的請求,也就是說Nginx將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器來處理审残。網(wǎng)站拓撲圖如圖所示:

案例環(huán)境:

主機操作系統(tǒng)IP地址主要軟件Nginx服務(wù)器RedHat7.3 x86_64192.168.113.151nginx-1.12.0.tar.gzTomcat服務(wù)器1CentOS7.4 x86_64192.168.113.129jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gzTomcat服務(wù)器2CentOS7.4 x86_64192.168.113.150jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gz

Tomcat1 server配置

1.啟動主機后關(guān)閉防火墻

systemctl disable firewalld.service //禁用防火墻服務(wù)

systemctl stop firewalld.service //關(guān)閉防火墻服務(wù)

2.安裝JDK梭域,配置Java環(huán)境

(1).解壓jdk軟件至/opt目錄下,并將解壓后生成的jdk文件夾移到/usr/local/下,改名為java搅轿。

tar zxvf jdk-7u65-linux-x64.gz -C /opt

mv jdk1.7.0_65/ /usr/local/java

(2).在/etc/profile.d/下建立java.sh腳本碰辅。

[root@centos7-1 ~]# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/local/java //設(shè)置Java根目錄

export PATH=$PATH:$JAVA_HOME/bin //在PATH環(huán)境變量中添加Java根目錄下的bin/子目錄

(3).將java.sh腳本導(dǎo)入到環(huán)境變量,使其生效

source /etc/profile.d/java.sh

(4).運行java-version命令查看java版本是否和之前安裝的一致介时。

[root@centos7-1 ~]# java -version

openjdk version "1.8.0_131"

OpenJDK Runtime Environment (build 1.8.0_131-b12)

OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

3.安裝配置Tomcat

(1).解壓apache-tomcat-8.5.16.tar.gz包至/opt目錄,并將解壓后生成的文件夾移動到/usr/local/下凌彬,改名為tomcat8沸柔。

tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/

mv apache-tomcat-8.5.16/ /usr/local/tomcat8

(2).啟動Tomcat

[root@centos7-1 ~]# /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE: /usr/local/tomcat8

Using CATALINA_HOME: /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME: /usr/local/java

Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

Tomcat started.

Tomcat默認運行在8080端口,運行netstat命令查看8080端口監(jiān)聽的信息铲敛。

[root@centos7-1 ~]# netstat -ntap | grep 8080

tcp6 0 0 :::8080 :::* LISTEN 1583/java

(3).打開瀏覽器訪問測試http://192.168.113.129:8080/, 如果出現(xiàn)x下面的界面褐澎,則表示Tomcat已經(jīng)配置啟動成功。

4.建立Java的web站點

(1).在根目錄下建立一個web目錄伐蒋,并在里面建立一個webapp1目錄工三,用于存放網(wǎng)站文件。

[root@centos7-1 ~]# mkdir -pv /web/webapp1

mkdir: 已創(chuàng)建目錄 "/web"

mkdir: 已創(chuàng)建目錄 "/web/webapp1"

(2).在webapp1目錄下建立一個index.jsp的測試頁面先鱼。

[root@centos7-1 ~]# vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注釋

JSP test1 page //測試頁標題

<% out.println("Welcome to test site,http://www.test1.com");%> //測試頁主體內(nèi)容

(3).修改Tomcat的server.xml文件俭正。

定義一個虛擬主機,并將網(wǎng)站文件路徑指向已經(jīng)建立的/web/webapp1焙畔,在host段增加context段掸读。

[root@centos7-1 ~]# vim /usr/local/tomcat8/conf/server.xml

unpackWARs="true" autoDeploy="true">

docBase:web應(yīng)用的文檔基準目錄

reloadable: 設(shè)置監(jiān)視“類”是否變化

path="": 設(shè)置默認“類

(4).關(guān)閉Tomcat,再重新啟動宏多。

/usr/local/tomcat8/bin/shutdown.sh //關(guān)閉Tomcat

/usr/local/tomcat7/bin/startup.sh //重啟Tomcat

(5).通過瀏覽器訪問http://192.168.113.129:8080/儿惫, 出現(xiàn)下面的界面,說明Tomcat站點配置成功并且能夠運行JSP了伸但。

Tomcat2 server配置

Tomcat2 server配置方法基本同Tomcat1肾请,其中包括:

1.啟動主機后關(guān)閉防火墻。

2.安裝JDK更胖,配置Java環(huán)境铛铁,版本與Tomcat1 server一致隔显。

3.安裝配置Tomcat,版本與Tomcat1 server一致避归。

4.創(chuàng)建/web/webapp1目錄荣月,修改Tomcat配置文件server.xml文件,將網(wǎng)站文件目錄更改到/web/webapp1/路徑下梳毙。

5.在/web/webapp1/路徑下建立index.jsp哺窄,為了區(qū)別將測試頁index.jsp的內(nèi)容更改如下:

[root@localhost ~]# vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注釋

JSP test2 page //測試頁標題

<% out.println("Welcome to test site,http://www.test2.com");%> //測試頁主體內(nèi)容

6.啟動tomcat,瀏覽器訪問http://192.168.113.150:8080/账锹, 出現(xiàn)下面的界面萌业,說明Tomcat站點配置成功并且能夠運行JSP了。

Nginx服務(wù)器配置

在Nginx服務(wù)器192.168.113.151上安裝Nginx奸柬,反向代理兩個Tomcat站點生年,并實現(xiàn)負載均衡。

1.關(guān)閉防火墻

systemctl disable firewalld.service

systemctl stop firewalld.service

2.安裝支持軟件

yum install gcc gcc-c++ make pcre pcre-devel zlib-devel openssl-devel -y

3.解壓并安裝Nginx

useradd -s /bin/false www //創(chuàng)建運行用戶www,強制禁止登陸系統(tǒng)shell環(huán)境

tar zxvf nginx-1.12.0.tar.gz -C /opt //解壓nginx軟件至/opt目錄下

cd /opt/nginx-1.12.0/ //切換到解壓后的nginx文件夾目錄下

./configure \ //配置nginx的具體選項

--prefix=/usr/local/nginx \

--user=www \

--group=www \

--with-file-aio \

--with-http_stub_status_module \

--with-http_gzip_static_module \

--with-http_flv_module \

--with-http_ssl_module

--prefix=/usr/l廓奕,ocal/nginx:指定nginx安裝路徑

--user=www抱婉,--group=www:指定運行的用戶和組

--with-file-aio:啟用文件修改支持

--with-http_stub_status_module:啟用狀態(tài)統(tǒng)計

--with-http_gzip_static_module:啟用gzip靜態(tài)壓縮

--with-http_flv_module:啟用flv模塊,提供尋求內(nèi)存使用基于時間的偏移量文件

--with-http_ssl_module:啟用ssl模塊

4.配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf

(1).在http{...}中加入以下代碼桌粉,設(shè)定負載均衡的服務(wù)器列表蒸绩,weight參數(shù)表示權(quán)值,權(quán)值越高被分配到的概率越大铃肯。為了使測試效果明顯患亿,把權(quán)重設(shè)置為一樣。

upstream tomcat_server {

server 192.168.113.129:8080 weight=1;

server 192.168.113.150:8080 weight=1;

} //配置后端服務(wù)池tomcat_server押逼,以提供響應(yīng)數(shù)據(jù)

(2).在http{...} - server{...} - location /{...}中加入一行“proxy_pass http://tomcat_server;” 步藕。

location / {

root html;

index index.html index.htm;

proxy_pass http://tomcat_server; //配置將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器處理

}

利用以上方式挑格,把Nginx的默認站點通過proxy_pass方法代理到了設(shè)定好的tomcat_server負載均衡服務(wù)器組上咙冗。

5.測試nginx配置文件是否正確。

[root@RedHat7-1 ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6.啟動Nginx服務(wù)并查看其端口

[root@RedHat7-1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //創(chuàng)建nginx主程序的軟鏈接漂彤,方便調(diào)用nginx命令

[root@RedHat7-1 ~]# nginx //啟動nginx服務(wù)

[root@RedHat7-1 ~]# netstat -ntap | grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17819/nginx: master

[root@RedHat7-1 ~]# killall -1 nginx //重啟nginx服務(wù)

測試負載均衡效果

1.打開瀏覽器訪問http://192.168.113.151/.

2.不斷刷新瀏覽器測試乞娄,可以看到由于權(quán)重相同,頁面會反復(fù)在以下兩個頁面切換显歧。

第一次訪問仪或,出現(xiàn)test1的測試頁面,刷新后士骤,第二次訪問出現(xiàn)test2的測試頁面范删,這說明負載均衡集搭建成功,已經(jīng)可以在兩個tomcat server站點間進行切換了拷肌。

真實環(huán)境中到旦,服務(wù)器集群站點的內(nèi)容相同旨巷,這里是為了測試負載均衡集的效果而建立2個不同的測試頁面。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末添忘,一起剝皮案震驚了整個濱河市采呐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搁骑,老刑警劉巖斧吐,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仲器,居然都是意外死亡煤率,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門乏冀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝶糯,“玉大人,你說我怎么就攤上這事辆沦≈绾矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵肢扯,是天一觀的道長妒茬。 經(jīng)常有香客問我,道長鹃彻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任妻献,我火速辦了婚禮蛛株,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘育拨。我一直安慰自己谨履,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布熬丧。 她就那樣靜靜地躺著笋粟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪析蝴。 梳的紋絲不亂的頭發(fā)上害捕,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音闷畸,去河邊找鬼尝盼。 笑死,一個胖子當著我的面吹牛佑菩,可吹牛的內(nèi)容都是我干的盾沫。 我是一名探鬼主播裁赠,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赴精!你這毒婦竟也來了佩捞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蕾哟,失蹤者是張志新(化名)和其女友劉穎一忱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渐苏,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡掀潮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了琼富。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仪吧。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鞠眉,靈堂內(nèi)的尸體忽然破棺而出薯鼠,到底是詐尸還是另有隱情,我是刑警寧澤械蹋,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布出皇,位于F島的核電站,受9級特大地震影響哗戈,放射性物質(zhì)發(fā)生泄漏郊艘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一唯咬、第九天 我趴在偏房一處隱蔽的房頂上張望纱注。 院中可真熱鬧,春花似錦胆胰、人聲如沸狞贱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞎嬉。三九已至,卻和暖如春厚柳,著一層夾襖步出監(jiān)牢的瞬間氧枣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工别垮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挑胸,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓宰闰,卻偏偏與公主長得像茬贵,于是被迫代替她去往敵國和親簿透。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容