溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

快速搭建平臺和環(huán)境部署Tomcat的方法

發(fā)布時間:2021-06-29 10:01:59 來源:億速云 閱讀:393 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“快速搭建平臺和環(huán)境部署Tomcat的方法”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“快速搭建平臺和環(huán)境部署Tomcat的方法”吧!

Tomcat部署的基本概念

1. CATALINA_HOME與CATALINA_BASE分別指什么?

    CATALINA_HOME指的是Tomcat的安裝目錄

    bin:\\Tomcat一些腳本存放目錄,比如啟動腳本startup.bat/startup.sh等

    conf:\\Tomcat配置文件所在目錄,最主要的就是server.xml與web.xml

    lib:\\主要存放Tomcat依賴包

    logs:\\Tomcat日志所在目錄。以為catalina、host-manager等開頭日志

    temp:\\存放Tomcat運行時的臨時文件,通常放一些緩存文件,一般不要刪除

    webapps:\\應用部署所在目錄,就是在這里存放我們需要部署的文件目錄、WAR包

    work:\\存放由JSP文件生成的Servlet

    RUNNING.txt:\\運行說明,必需的一些環(huán)境信息

    NOTICE:\\通知信息,軟件的版權(quán)信息等

    RELEASE-NOTES:\\發(fā)布說明,比如版本升級的功能說明

    LICENSE:\\版權(quán)許可證,軟件版權(quán)信息

    CATALINA_BASE指的是Tomcat的實例所在目錄,Tomcat的實例由除了bin、lib外的目錄組成

    兩者的對比圖如下一目了然,配置多實例,也只需要Copy相應的目錄組成新的Tomcat實例即可。

    快速搭建平臺和環(huán)境部署Tomcat的方法

2. conf目錄下的配置文件具體用來做什么?

    Tomcat的配置需要分為:JVM配置、服務器配置、Web應用配置、Tomcat管理配置四個方面(其中JVM的配置一般在catalina.sh/catalina.bat中配置,這里不做介紹),這里只做簡單的介紹,不會具體介紹Tomcat配置

    1)服務器配置

      服務器配置主要集中于$CATALINA_HOME/conf下的catalina.policy、catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml文件。

    2)Web應用配置

      web.xml是Web應用的部署描述文件,它支持的元素及屬性來自于Servlet規(guī)范定義。在Tomcat中,Web應用的部署描述信息包括$CATALINA_BASE/conf/web.xml中的默認配置。Tomcat的默認配置比Web應用定制配置負責很多,如果是完全基于JSP的Web應用不需要添加任何定制配置。主要包括ServletContext的初始化參數(shù)、會話配置、Filter定義與映射等

    3)Tomcat管理配置

      主要是針對host-manager 與manager兩個功能進行配置,在Tomcat中我們可以針對虛擬主機進行配置,也可以對我們的Web應用進行管理。

3. webapps下的目錄哪些可以刪除?

    Wwbapps目錄下包括docs、ROOT、manager、host-manager、examples。webapps不一定是Tomcat部署web應用唯一的地方,可以在任何一處,但只需要做好映射即可(context.xml描述文件或者Host的appBase屬性可以做到)

    事實上,全部都可以刪除。為什么呢?這是因為

    1)ROOT:\\Tomcat本身默認的訪問http://{ip}:{port},也就是訪問http://127.0.0.1:8080標志性的Tomcat首頁所在之處

    2)manager:\\訪問http://{ip}:{port}/manager/html,可以管理部署應用(當然需要配置tomcat-users.xml文件)。一般部署Web應用往往是不需要的

    3)host-manager:\\訪問http://{ip}:{port}/host-manager/html,可以管理配置Host虛擬主機。一般簡單web應用部署也不會用到

    4)examples:\\Servlet、JSP、WebSocket示例,展示在Tomcat下如何使用等,訪問http://{ip}:{port}/examples/index.html即可進入。也是不需要的,可以刪除

    5)docs:\\Tomcat HTML文檔中心,不影響應用部署,可以刪除

4. Tomcat為了避免端口沖突需要更改哪些端口?

  1)Server Port:該端口用于監(jiān)聽關(guān)閉tomcat的shutdown命令,默認為8005
      <Server port="8006">   2)Connector Port:該端口用于監(jiān)聽HTTP的請求,默認為8080

          <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

  3)AJP Port:該端口用于監(jiān)聽AJP( Apache JServ Protocol )協(xié)議上的請求,通常用于整合Apache Server等其他HTTP服務器,默認為8009。實際上可以不用管,因為AJP基本用不到,特別是Ngxin與Tomcat集成時(Nginx沒有響應的支持AJP模塊,只有第三方模塊支持AJP協(xié)議)

           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  4)Redirect Port:重定向端口,出現(xiàn)在Connector配置中,如果該Connector僅支持非SSL的普通http請求,那么該端口會把 https 的請求轉(zhuǎn)發(fā)到這個Redirect Port指定的端口,默認為8443;

簡單的應用部署為避免端口沖突,實際上只需要更改SHUTDOWN監(jiān)聽端口與Connector鏈接器監(jiān)聽端口即可

5. Tomcat部署應用的方式有哪幾種?

  1) Context描述文件部署

  Tomcat支持通過一個獨立的Context描述文件配置并啟動Web應用,該文件的存儲路徑由Hot中xmlBase屬性指定,若不指定,則默認CATALINA_BASE/conf/<Engine名稱>/<Host名稱>,對于Tomcat默認的就是CATALINA_BASE/conf/Catalina/localhost;其實也就是conf/context.xml文件:Tomcat啟動時即會自動部署該Web應用。

  2) Web部署

  即以目錄的形式發(fā)布部署Web應用,復制到Host指定appBase目錄下即可完成部署。

  3) WAR包部署

  xxx.war包解壓成目錄形式。

接下來我們根據(jù)上文Tomcat的介紹做Linux+Nginx+MariaDB+Tomcat動靜分離實戰(zhàn)演練

    1.環(huán)境描述

    準備兩臺虛擬機,一臺作為nginx服務器+mysql服務器,IP為:192.168.109.131;另外一臺作為Tomcat服務器配置多實例,IP為:192.168.109.132。當客戶端發(fā)來請求,首先由nginx處理,如果為靜態(tài)內(nèi)容直接由nginx響應,將結(jié)果直接給客戶端;如果為動態(tài)內(nèi)容,則由nginx反向代理至后端的Tomcat服務器。

    2.安裝Nginx

    [root@centos7~]#yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf wget vim

    [root@centos7~]#wget http://nginx.org/download/nginx-1.17.4.tar.gz

    [root@centos7~]#useradd -s /sbin/nologin nginx

    [root@centos7~]#cd nginx-1.17.4

    [root@centos7~]#cd nginx-1.17.4

    [root@centos7 nginx-1.17.4]##./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

    [root@centos7 nginx-1.17.4]#make && make install

    [root@centos7 nginx-1.17.4]#cat /usr/local/nginx/sbin/nginx

    [root@centos7 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /sbin

    [root@centos7 nginx-1.17.4]# nginx

    [root@centos7 nginx-1.17.4]# nginx -s reload

Nginx 安裝完畢,稍后我們再配置,接下來安裝mariadb

    3.安裝mariadb

    [root@centos7~]#yum -y install mariadb mariadb-server mariadb-devel

    [root@centos7~]#systemctl restart mariadb 

    [root@centos7~]#systemctl enable mariadb

Mysql安裝完畢,我們切換到另一臺最小化方式安裝的虛擬機上安裝Tomcat

    4.安裝Tomcat

    [root@centos7~]#yum -y install wget bash-completion vim 

    [root@centos7~]#wget wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

    [root@centos7~]#yum -y install java    //安裝JDK

    [root@centos7~]#java -version    //查看JDK版本

    [root@centos7~]#yum install -y tomcat-webapps tomcat-admin-webapps    //安裝tomcat管理包

    [root@centos7~]#mkdir /usr/local/tomcat  /usr/local/tomcat/tomcat_1  /usr/local/tomcat/tomcat_2

    [root@centos7~]#tar -xvf apache-tomcat-9.0.27.tar.gz tomcat_bin -C /usr/local/tomcat/tomcat

    [root@slave tomcat]#mv apache-tomcat-9.0.27 tomcat_bin

    [root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r  /usr/local/tomcat/tomcat_1

    [root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r  /usr/local/tomcat/tomcat_2

    [root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml     //主要修改tomcat_1以下兩個參數(shù)

    <Server port="8010" shutdown="SHUTDOWN">    //修改shutdown命令監(jiān)聽端口
    <Connector port="8081" protocol="HTTP/1.1"        //修改Connector鏈接器監(jiān)聽端口
               connectionTimeout="20000"
               redirectPort="8443" />

    [root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml    //主要修改tomcat_2以下兩個參數(shù)

    <Server port="8020" shutdown="SHUTDOWN">    //修改shutdown命令監(jiān)聽端口
    <Connector port="8082" protocol="HTTP/1.1"        //修改Connector鏈接器監(jiān)聽端口
               connectionTimeout="20000"
               redirectPort="8443" />

[root@centos7~]#bash /usr/local/tomcat/tomcat_bin/bin/startup.sh   // 啟動實例0(默認配置)

Using CATALINA_BASE:   /usr/local/tomcat/tomcat_bin
Using CATALINA_HOME:   /usr/local/tomcat/tomcat_bin
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_bin/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/tomcat_bin/bin/bootstrap.jar:/usr/local/tomcat/tomcat_bin/bin/tomcat-juli.jar
[root@centos7~]#bash /usr/local/tomcat/tomcat_1/bin/startup.sh    //啟動實例1

Using CATALINA_BASE:   /usr/local/tomcat/tomcat_1
Using CATALINA_HOME:   /usr/local/tomcat/tomcat_1
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_1/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/tomcat_1/bin/bootstrap.jar:/usr/local/tomcat/tomcat_1/bin/tomcat-juli.jar
Tomcat started.

[root@centos7~]#bash /usr/local/tomcat/tomcat_2/bin/startup.sh    //啟動實例2

Using CATALINA_BASE:   /usr/local/tomcat/tomcat_2
Using CATALINA_HOME:   /usr/local/tomcat/tomcat_2
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_2/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat/tomcat_2/bin/tomcat-juli.jar
Tomcat started.

[root@centos7~]# netstat -nptl    //    檢查端口是否已經(jīng)起來
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1482/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2045/master         
tcp6       0      0 :::8009                 :::*                    LISTEN      2956/java           
tcp6       0      0 127.0.0.1:8010          :::*                    LISTEN      3037/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      2956/java           
tcp6       0      0 :::8081                 :::*                    LISTEN      3037/java           
tcp6       0      0 :::8082                 :::*                    LISTEN      3097/java           
tcp6       0      0 127.0.0.1:8020          :::*                    LISTEN      3097/java           
tcp6       0      0 :::22                   :::*                    LISTEN      1482/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2045/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2956/java   

為了便于區(qū)別驗證實例是否都正常工作,修改主頁文件來驗證

[root@centos7~]#/usr/local/tomcat/tomcat_bin/webapps/ROOT/index.jsp

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 0</H1>
</body></html>

[root@centos7~]#/usr/local/tomcat/tomcat_1/webapps/ROOT/index.jsp

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 1</H1>
</body></html>

[root@centos7~]#/usr/local/tomcat/tomcat_2/webapps/ROOT/index.jsp

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 2</H1>
</body></html>

最后,驗證以下Tomcat運行是否正常。

快速搭建平臺和環(huán)境部署Tomcat的方法

快速搭建平臺和環(huán)境部署Tomcat的方法快速搭建平臺和環(huán)境部署Tomcat的方法

*****************************************tomcat多實例至此安裝完成***************************

5.配置nginx反向代理動態(tài)頁面轉(zhuǎn)發(fā)到tomcat,靜態(tài)頁面直接處理

[root@centos7~]#vim /usr/local/nginx/conf/nginx.conf    //只保留配置部分,監(jiān)聽域名www.cc.com

user  nginx nginx;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream web {                           //添加upstream模塊
    server 192.168.109.132:8080 ;    //tomcat實例0
    server 192.168.109.132:8081 ;    //tomcat實例1
    server 192.168.109.132:8082 ;    //tomcat實例2
    }
    server {
        listen       80;
        server_name  www.cc.com;
        location ~* \.(do|jsp)$ {    //定義訪問類型轉(zhuǎn)發(fā)到后端web
        proxy_pass http://web;
        }
        location ~* tomcat\.(png|css)$ {    //定義訪問類型轉(zhuǎn)發(fā)到后端web
        proxy_pass http://web;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
[root@centos7~]#nginx -t     //測試一下nginx配置文件

[root@centos7~]#nginx -s reload     //平滑啟動nginx

最后本地綁定hosts文件測試一下配置結(jié)果:

訪問靜態(tài)主頁:

快速搭建平臺和環(huán)境部署Tomcat的方法

訪問動態(tài)頁面:

快速搭建平臺和環(huán)境部署Tomcat的方法

快速搭建平臺和環(huán)境部署Tomcat的方法

快速搭建平臺和環(huán)境部署Tomcat的方法

總結(jié):

實際生產(chǎn)環(huán)境中可能會遇到nginx多實例做負載均衡(ELB)和tomcat多實例為主的情況,根據(jù)服務器容量也有單機多實例和集群模式,所以根據(jù)不同的生產(chǎn)環(huán)境會有不同的配置方式,滿足業(yè)務需求才是運維的第一生產(chǎn)力

tomcat的啟停可以編輯一下Shell/Python腳本來幫助管理實例,日志的管理和參數(shù)調(diào)優(yōu)也是需要繼續(xù)學習的地方

感謝各位的閱讀,以上就是“快速搭建平臺和環(huán)境部署Tomcat的方法”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對快速搭建平臺和環(huán)境部署Tomcat的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI