centos7部署Tomcat及其負載均衡配置詳解-創(chuàng)新互聯(lián)

Tomcat服務(wù)器是一個免費的開源web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)用戶不是很多的場合中被普遍使用,是開發(fā)和測試JSP程序的選。一般來說,Tomcat雖然和apache或者Nginx這些web服務(wù)器一樣,具有處理HTML頁面的功能,然而由于其處理靜態(tài)頁面的能力遠不如apache或者Nginx,所以Tomcat一般是作為一個servlet和JSP容器,單獨運行在后端,Tomcat應(yīng)用場景如下:

創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元那坡做網(wǎng)站,已為上家服務(wù),為那坡各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

centos  7部署Tomcat及其負載均衡配置詳解

用戶訪問的永遠是apache/Nginx服務(wù)器,然后由apache/Nginx服務(wù)器轉(zhuǎn)交給Tomcat服務(wù)器處理,所有服務(wù)器都連接著共享存儲服務(wù)器,以便使用戶每次訪問到數(shù)據(jù)是一樣的,apache/Nginx是用來做調(diào)度的,也就是熟知的負載均衡,關(guān)于負載均衡不多解釋了。。。

通常情況下,一臺Tomcat站點由于可能出現(xiàn)單點故障及無法應(yīng)付過多的客戶復(fù)雜多樣的請求等問題,不能單獨應(yīng)用于生產(chǎn)環(huán)境下,所以需要使用負載均衡來解決這些問題。

Nginx是一個非常優(yōu)秀的http服務(wù)器軟件,它能夠支持高達50000個并發(fā)連接數(shù)的響應(yīng),擁有強大的靜態(tài)資源處理能力,運行穩(wěn)定,并且內(nèi)存、CPU等系統(tǒng)資源消耗非常低。目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器作為后端網(wǎng)站程序的反向代理及負載均衡器,來提升整個站點的負載并發(fā)能力。

開始準備工作,搭建下面的環(huán)境,為了簡化,就不部署共享存儲服務(wù)器了,環(huán)境如下:

centos  7部署Tomcat及其負載均衡配置詳解

一、部署前準備:

三臺服務(wù)器均使用centos7來部署,部署過程中所用到的軟件如下:

  • centos7的系統(tǒng)映像;
  • Nginx和Tomcat源碼包,可自行從官網(wǎng)下載,也可從我提供的鏈接下載(已打包為ISO映像文件):鏈接:https://pan.baidu.com/s/1hQOG-e9aaW8V2kvbBSzIxg
    提取碼:9pdv

二、配置Tomcat服務(wù)器:

這篇博文以實現(xiàn)最終效果為目的,若想了解關(guān)于Tomcat配置文件的說明及作用,可以參考博文:https://blog.51cto.com/14154700/2412234 。

1、開始在192.168.1.1服務(wù)器上部署Tomcat(關(guān)于防火墻的配置這里就省略了,請自行配置防火墻以放行相關(guān)流量,我這里直接停掉了防火墻,Tomcat默認使用的端口號是8080;Nginx默認使用的端口號是80):

[root@localhost ~]# java -version    #查看JDK是否安裝,若沒有,自行安裝
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@localhost media]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src      #解壓Tomcat包
[root@localhost media]# cd /usr/src/
[root@localhost src]# mv apache-tomcat-8.5.16/ /usr/local/tomcat8 
#Tomcat不用編譯安裝,解壓后即可用
[root@localhost src]# mkdir -p /web/webapp1        #建立Java的web站點,用于存放網(wǎng)站文件
[root@localhost src]# vim /web/webapp1/index.jsp          #建立一個index.jsp的測試頁面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
        <title>JSP test1 page</title>
 </head>
 <body>
        <% out.println("www.test1111.com");%>
 </body>
</html>
[root@localhost src]# vim /usr/local/tomcat8/conf/server.xml       #修改Tomcat的主配置文件

                    ......................................
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">     #定位到該行,然后添加下面兩行內(nèi)容
        <Context docBase="/web/webapp1" path="" reloadable="false">
        </Context>
#docBase:web應(yīng)用的文檔默認目錄;
#path=""設(shè)置默認“類;”
#reloadable設(shè)置監(jiān)視“類”是否變化;
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh              
#啟動服務(wù),停止服務(wù)的話,只需將startup.sh換為shutdown.sh即可。
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH: /usr/local/tomcat8/bin/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

[root@localhost src]# netstat -antp | grep 8080             #查看默認端口8080是否在監(jiān)聽狀態(tài)
tcp6       0      0 :::8080        :::*            LISTEN      13220/java          

本機測試訪問:192.168.1.1:8080,看到如下測試頁面:
centos  7部署Tomcat及其負載均衡配置詳解

至此,192.168.1.1的Tomcat就已經(jīng)配置完成了,另一臺Tomcat服務(wù)器192.168.1.2的配置和192.168.1.1的配置完全一樣,將上面的配置在192.168.1.2服務(wù)器上配置一遍即可,不過為了測試的時候可以看出負載均衡的效果,讓我們可以看出每次訪問的服務(wù)器都不是同一臺,需要將192.168.1.2的Tomcat服務(wù)器的測試頁面和192.168.1.1的頁面不一樣。

不過在實際生產(chǎn)環(huán)境中,兩臺Tomcat訪問的一定是使用同一個共享存儲服務(wù)器,不管是哪臺服務(wù)器向用戶提供服務(wù),用戶接受到的頁面一定是一樣的。

自己在192.168.1.2的服務(wù)器上將上面的配置來一遍吧,將192.168.1.2服務(wù)器的測試頁面內(nèi)容更改一下,如下:

[root@localhost src]# vim /web/webapp1/index.jsp  
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
        <title>JSP test1 page</title>
 </head>
 <body>
        <% out.println("www.test22222222222222.com");%>
 </body>
</html>

三、配置Nginx服務(wù)器(IP:192.168.1.1):

1、安裝Nginx:

 [root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel
 #安裝依賴包
 [root@localhost ~]# useradd www -s /bin/false        #創(chuàng)建運行用戶
[root@localhost media]# tar zxf nginx-1.12.0.tar.gz -C /usr/src     #解包
[root@localhost media]# cd /usr/src/nginx-1.12.0/       #切換至該目錄
[root@localhost nginx-1.12.0]# ./configure --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 && make && make install               #編譯安裝
[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf              #編輯主配置文件
                 .............................
   #gzip  on;                  #定位到該行,寫入下面四行
    upstream tomcat_server {          
        server 192.168.1.1:8080 weight=1;
        server 192.168.1.2:8080 weight=1;
}
   #寫到這里結(jié)束
     #weight參數(shù)表示權(quán)重,權(quán)重越高,表示被分配到的概率越大。
     #為了測試效果明顯,這里將權(quán)重設(shè)置為一樣
    server {
        listen       80;
        server_name  localhost;
         ......................
  location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://tomcat_server;               #定位到該{ }中,寫入該行,“http://”后面的名字要和上面添加的upstream項后面的名字一致,才可實現(xiàn)調(diào)度。
        }

2、優(yōu)化Nginx的控制:

[root@localhost nginx-1.12.0]#  ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/                 
#創(chuàng)建主程序的鏈接文件
[root@localhost ~]# vim /etc/init.d/nginx     #編輯服務(wù)腳本
#!/bin/bash
# chkconfig: - 99 20
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
        $PROG
  ;;
  stop)
        kill -s QUIT $(cat $PIDF)
  ;;
  restart)
        $0 stop
        $0 start
  ;;
  reload)
        kill -s HUP $(cat $PIDF)
  ;;
  *)
        echo "USAGE:$0 {start | stop | restart | reload}"
        exit 1
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx      #添加執(zhí)行權(quán)限
[root@localhost ~]# chkconfig --add nginx           #添加為系統(tǒng)服務(wù)
[root@localhost nginx-1.12.0]# 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
[root@localhost ~]# systemctl start nginx             #啟動Nginx服務(wù),以確認腳本的正常運行
[root@localhost ~]# netstat -anpt | grep nginx                    #查看80端口是否處于監(jiān)聽狀態(tài)
tcp        0      0 0.0.0.0:80      0.0.0.0:*      LISTEN      90475/nginx: master 

四、訪問測試:

至此,部署工作已經(jīng)完成,現(xiàn)在使用客戶機訪問Nginx服務(wù)器192.168.1.1測試,效果如下:

第一次訪問將會看到如下界面:

centos  7部署Tomcat及其負載均衡配置詳解

刷新一下網(wǎng)頁將會看到如下界面

centos  7部署Tomcat及其負載均衡配置詳解

可以看到,我們訪問的是Nginx服務(wù)器,真正處理訪問請求的是Tomcat服務(wù)器,而且每次訪問請求都是不同的Tomcat服務(wù)器來處理,效果也就顯而易見了。

五、寫在最后:部署過程中遇到的小小問題:

在更改完Tomcat服務(wù)器的配置文件后,訪問測試時,看到訪問的依然是Tomcat自帶的默認頁面,有點摸不著頭腦,試著使用如下命令來對Tomcat服務(wù)進行幾次啟停后,就好了:

[root@localhost webapp1]# /usr/local/tomcat8/bin/shutdown.sh                   #停止服務(wù)
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:/usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
[root@localhost webapp1]# /usr/local/tomcat8/bin/startup.sh                #啟動服務(wù)
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:/usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

可能是這個服務(wù)啟停的問題,沒有深究,這個服務(wù)與別的服務(wù)都不太一樣:
Nginx服務(wù)停止后,查端口號是查不到的,如下:

[root@localhost ~]# systemctl stop nginx
[root@localhost ~]# netstat -anpt | grep nginx                 #Nginx服務(wù)停止后,什么都查不到
[root@localhost ~]# 

而Tomcat服務(wù)停止后,查端口號會發(fā)現(xiàn),狀態(tài)如下(啟動時的Listen狀態(tài)變成了TIME_WAIT狀態(tài)),等待片刻后,才查不到相關(guān)信息:

[root@localhost webapp1]# netstat -antp | grep 8080
tcp6       0      0 ::1:56448               ::1:8080                TIME_WAIT

不深究了,最后效果出來就好了,而且也是第一次遇見這種情況。

分享題目:centos7部署Tomcat及其負載均衡配置詳解-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article38/cdcepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、域名注冊、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、自適應(yīng)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)