溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

淺談Tomcat安裝

發(fā)布時(shí)間:2020-08-04 22:29:28 來源:網(wǎng)絡(luò) 閱讀:360 作者:mb5d03569e7eb16 欄目:系統(tǒng)運(yùn)維

博文結(jié)構(gòu)
tomcat介紹
Tomcat組件及其特點(diǎn)
安裝Tomcat
自定義目錄
開啟JMX遠(yuǎn)程調(diào)試功能
使用https訪問tomcat服務(wù)器

一.Tomcatl介紹

Tomcat是apache軟件基金會(huì)項(xiàng)目中的一個(gè)核心項(xiàng)目,有apache和sun其他一些公司及個(gè)人共同開發(fā)而成的Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試jsp程序的首選。
可以這樣認(rèn)為,當(dāng)一臺(tái)服務(wù)器配置好apache服務(wù)器以后,可以利用apache服務(wù)器來響應(yīng)我們的html頁面的訪問請(qǐng)求,而tomcat是 apahce 服務(wù)器的擴(kuò)展,當(dāng)你運(yùn)行tomcat的時(shí)候?qū)嶋H上是作為一個(gè)apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的,apache服務(wù)器為html頁面提供服務(wù)的,而tomcat是運(yùn)行jsp頁面和servlet,另外tomcat也能具有處理html頁面的功能,但是處理靜態(tài)的能力沒有apache處理好。

二.Tomcat組件及其特點(diǎn)

  • tomcat組件

servlet(應(yīng)用程序或者容器)是java提供的用于開發(fā)web服務(wù)器應(yīng)用程序的一個(gè)組件,運(yùn)行在服務(wù)器端,有servlet用于生成動(dòng)態(tài)頁面內(nèi)容,servlet是平臺(tái)立的java類,編寫一個(gè)servlet,實(shí)際上就是安裝servlet規(guī)范編寫一個(gè)java類

  • 什么是servlet ?

Tomcat 處理請(qǐng)求和響應(yīng)的過程是由servlet的程序來完成的,并且servlet是為例解決實(shí)現(xiàn)動(dòng)態(tài)頁面而衍生的東西,與我們之前了解的nginx或者apache想要實(shí)現(xiàn)動(dòng)態(tài)頁面需要和php服務(wù)器溝通的過程差不多,可以把servlet比作成php

淺談Tomcat安裝

Tomcat 是web應(yīng)用服務(wù)器,是一個(gè)servlet/jsp容器,tomcat作為servlet容器,負(fù)責(zé)處理客戶請(qǐng)求,并將servlet的響應(yīng)傳送給客戶,而servlet是一種運(yùn)行在java語言的服務(wù)器上的組件,servlet最常見的用途是擴(kuò)展java web服務(wù)器功能,提供非常安全的,可以移植的(打包網(wǎng)頁代碼就可以在另外一個(gè)環(huán)境中運(yùn)行,如linux系統(tǒng)跟windows環(huán)境),易于使用cgi替代品。

  • Tomcat處理數(shù)據(jù)的流程

1、瀏覽器發(fā)送請(qǐng)求數(shù)據(jù)
2、tomcat收到服務(wù)器的請(qǐng)求數(shù)據(jù),由servlet容器處理并進(jìn)行解析,并且把客戶端的數(shù)據(jù)請(qǐng)求request改變成servlet request 交給后端的servlet 實(shí)例(或者或叫對(duì)象)實(shí)例收到客戶端的請(qǐng)求數(shù)據(jù)的請(qǐng)求對(duì)象,進(jìn)行出處理客戶端的請(qǐng)求,處理完成后將數(shù)據(jù)響應(yīng)給servlet容器,響應(yīng)給servlet容器叫做servlet response。
3、Servlet收到的實(shí)例的響應(yīng)數(shù)據(jù)交給客戶端(如圖)
淺談Tomcat安裝
Servlet(tomcat)容器與servlet實(shí)例需要通過java servlet api接口進(jìn)行通信,api接口是由開發(fā)人員在寫代碼的時(shí)候定義或者編寫的
4.servlet容器將收到的響應(yīng)數(shù)據(jù)交給客戶端

  • Servlet和jsp的區(qū)別

Servlet在Java代碼中可以通過HttpServletResponse對(duì)象動(dòng)態(tài)輸出HTML內(nèi)容;

JSP在靜態(tài)HTML內(nèi)容中嵌入Java代碼,然后Java代碼在被動(dòng)態(tài)執(zhí)行后生成HTML頁面;

  • tomcat的特點(diǎn)

運(yùn)行時(shí)占用的資源小,擴(kuò)展性好,支持負(fù)載均衡和郵件服務(wù)器等開發(fā)應(yīng)用系統(tǒng)常用的功能

三.安裝tomcat

下載Tomcat所需的軟件包

  • 安裝Tomcat需要系統(tǒng)Java環(huán)境1.8版本以上,Centos 7默認(rèn)就已經(jīng)支持Java環(huán)境1.8版本,由于現(xiàn)在大部分使用還是Centos 6的系統(tǒng),,由于本人采用的Centos 7系統(tǒng),所以首先需要卸載JDK環(huán)境。
[root@localhost ~]# rpm -qa | grep jdk  
\\查詢已安裝的jdk包
copy-jdk-configs-1.2-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
[root@localhost ~]# rpm -e java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64  java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 --nodeps
\\卸載系統(tǒng)自帶的jdk環(huán)境
[root@localhost ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# vim /etc/profile
//編寫系統(tǒng)環(huán)境變量,在最后一行加以下內(nèi)容
export  JAVA_HOME=/usr/local/jdk1.8.0_211              //指定java的路徑
export  JRE_HOME=/usr/local/jdk1.8.0_211/jre           //java運(yùn)行環(huán)境
export  CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
                                                                                    //聲明java中的類,類就是一類事務(wù)的屬性,如各種蓋飯最終他們的屬性是飯
export  PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
                                                                                    //將定義的變量添加到系統(tǒng)環(huán)境變量中
[root@localhost ~]# source /etc/profile                        //重新加載系統(tǒng)環(huán)境變量文件

[root@localhost ~]# tar zxf apache-tomcat-8.5.35.tar.gz 
[root@localhost ~]# mv apache-tomcat-8.5.35 /usr/local/tomcat
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh  \\啟動(dòng)tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_211/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      16320/java      
  • 現(xiàn)在可以用客戶端訪問測(cè)試

淺談Tomcat安裝

  • Tomcat目錄說明
    [root@localhost ~]# ls /usr/local/tomcat/
    bin conf lib logs README.md RUNNING.txt webapps
    BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
Bin:存放windows或linux平臺(tái)上啟動(dòng)或者關(guān)閉tomcat的腳本文件
Conf:存放tomcat服務(wù)器的全局配置文件,其中最重要的是server.xml和web.xml
Lib:tomcat運(yùn)行需要的庫文件(jars)
Logs:tomcat運(yùn)行時(shí)產(chǎn)生的日志文件
Temp:臨時(shí)文件存放目錄
Work:tomcat的工作目錄,存放tomcat運(yùn)行時(shí)的編譯配置文件
Webapps:網(wǎng)頁文件存放路徑
Tomcat常用配置文件說明
Server.xml:tomcat的主配置文件,可以設(shè)置端口號(hào),設(shè)置域名或者IP
Web.xml: 缺省的web app配置(也可以理解為是實(shí)現(xiàn)主配置文件沒有定義到的功能:如目錄遍歷,定義錯(cuò)誤頁面類型)
Tomcat-users.xml:用來配置管理tomcat的用戶與權(quán)限
  • tomcat中server.xml文件結(jié)構(gòu)

淺談Tomcat安裝

Server:代表整個(gè)容器,實(shí)例的頂層元素,一個(gè)配置文件中只能有一個(gè)server元素,可以包含多個(gè)service。比如:

<Server port="8005" shutdown="SHUTDOWN">
//表示關(guān)閉Tomcat,使用telnet連接8005,輸入shutdown指令

Service:提供完整jvm的獨(dú)立組件,jvm表示Java虛擬機(jī),是一個(gè)虛構(gòu)出來的虛擬機(jī),可以包含一個(gè)engine包含多個(gè)connector;

  <Service name="Catalina">
//代表接受所有tomcat接受的請(qǐng)求,如果是Service name="apache"則表示接受所有apache轉(zhuǎn)發(fā)過來的請(qǐng)求

Connector:接口定義,負(fù)責(zé)接受客戶端的請(qǐng)求,以及向客戶端返回響應(yīng)的結(jié)構(gòu);

<Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
//port:接受數(shù)據(jù)的端口;protocol:設(shè)置http協(xié)議;
//Connection Timeout:與客戶端的連接超時(shí)時(shí)間,-1代表不限制客戶端的連接時(shí)間;
//Redirectport :當(dāng)客戶端請(qǐng)求是https將請(qǐng)求轉(zhuǎn)發(fā)到8443去

Engine:處理客戶端的請(qǐng)求,可以包含多個(gè)hots;

<Engine name="Catalina" defaultHost="localhost">

//name:是引擎名稱,處理客戶的請(qǐng)求默認(rèn)去尋找localhost
Host:定義的虛擬主機(jī),為特定的虛擬主機(jī)處理所有的客戶端請(qǐng)求;

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

Context:運(yùn)行在虛擬主機(jī)中的單個(gè)web應(yīng)用;

  • Tomcat處理http請(qǐng)求過程

淺談Tomcat安裝

過程

①用戶點(diǎn)擊網(wǎng)頁內(nèi)容,請(qǐng)求被發(fā)送到本機(jī)端口8080,被在那里監(jiān)聽的Coyote HTTP/1.1 Connector獲得;
②Connector把該請(qǐng)求交給它所在的Service的Engine來處理,并等待Engine的回應(yīng);
③Engine獲得請(qǐng)求localhost/test/index.jsp,匹配所有的虛擬主機(jī)Host;
④Engine匹配到名為localhost的Host(即使匹配不到也把請(qǐng)求交給該Host處理,因?yàn)樵揌ost被定義為該Engine的默認(rèn)主機(jī)),名為localhost的Host獲得請(qǐng)求/test/index.jsp,匹配它所擁有的所有的Context。Host匹配到路徑為/test的Context(如果匹配不到就把該請(qǐng)求交給路徑名為“ ”的Context去處理);
⑥path=“/test”的Context獲得請(qǐng)求/index.jsp,在它的mapping table中尋找出對(duì)應(yīng)的Servlet。Context匹配到URL PATTERN為*.jsp的Servlet,對(duì)應(yīng)于JspServlet類;
⑥構(gòu)造HttpServletRequest對(duì)象和HttpServletResponse對(duì)象,作為參數(shù)調(diào)用JspServlet的doGet()或doPost().執(zhí)行業(yè)務(wù)邏輯、數(shù)據(jù)存儲(chǔ)等程序;
⑦Context把執(zhí)行完之后的HttpServletResponse對(duì)象返回給Host;
⑧Host把HttpServletResponse對(duì)象返回給Engine;
⑨Engine把HttpServletResponse對(duì)象返回Connector;
⑩Connector把HttpServletResponse對(duì)象返回給客戶Browser;

四.自定義目錄

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml 
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
\\在zhe這個(gè)Hostname下添加以下內(nèi)容
<Context path = "/xws" docBase = "/data/project" debug = "0" reloadable  = "false" crossContext = "true">     
        </Context>
  • 相關(guān)解釋
Path:指出訪問的路徑
docBase:指定存放的路徑
Debug:指定debug的等級(jí)為0輸出信息最少,9提供最多信息
Reloadable:為ture時(shí)當(dāng)web.xml文件有改動(dòng)的時(shí)候自動(dòng)重新加載,不用重啟服務(wù)
CorssContext:為ture時(shí)表示不同的context共享一個(gè)session(會(huì)話池)
[root@localhost ~]# mkdir -p /data/project
[root@localhost ~]# vim /data/project/index1.jsp
aaaaaaa
[root@localhost ~]# vim /data/project/index2.jsp
bbbbbbb
  • 開啟tomcat目錄遍歷
[root@localhost ~]# vim /usr/local/tomcat/conf/web.xml
\\大約在112行中把false改為true

淺談Tomcat安裝

  • 重啟服務(wù)
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh   \\關(guān)閉服務(wù)
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_211/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh        \\啟動(dòng)服務(wù)
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_211/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
  • 客戶端訪問驗(yàn)證

淺談Tomcat安裝

淺談Tomcat安裝

五.自定義監(jiān)控頁面

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml 
//在host中添加
 <Context path="/jiankong" docBase="/jk/jiankong" debug="0" reloadable="    false" crossContext="true"/>

淺談Tomcat安裝

[root@localhost /]# mkdir /jk/jiankong -p
[root@localhost /]# vim /jk/jiankong/index.jsp
<%
Runtime rtm = Runtime.getRuntime();
long mm = rtm.maxMemory()/1024/1024;
long tm = rtm.totalMemory()/1024/1024;
long fm = rtm.freeMemory()/1024/1024;

out.println("JVM memory detail info :<br>");
out.println("Max memory:"+mm+"MB"+"<br>");
out.println("Total memory: "+tm+"MB"+"<br>");
out.println("Free memory: "+fm+"MB"+"<br>");
out.println("Available memmory can be used is :"+(mm+fm-tm)+"MB"+"<br>");
    %>
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh                  //重啟tomcat服務(wù)
  • 訪問如下

淺談Tomcat安裝

六.開啟JMX遠(yuǎn)程調(diào)試功能

[root@localhost /]# vim /usr/local/tomcat/bin/catalina.sh 

#----- Execute The Requested Command -----------------------------------------        //填寫的內(nèi)容必須在這行下面大約在309行

CATALINA_OPTS=" $CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
[root@localhost /]# cd /usr/local/jdk1.8.0_211/jre/lib/management/
[root@localhost management]# cp jmxremote.password.template jmxremote.password
[root@localhost management]# vim jmxremote.password  //在最后一行添加,定義用戶為xws,密碼為123456,使用“wq!”強(qiáng)制保存退出
xws     123456
[root@localhost management]# vim jmxremote.access  //定義用戶權(quán)限的文件
xws   readwrite \                                       //在倒數(shù)第三行。把原有的用戶改為xws
[root@localhost management]# chmod 600 jmxremote.access 
[root@localhost management]# chmod 600 jmxremote.password
[root@localhost management]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost management]# /usr/local/tomcat/bin/startup.sh 
[root@localhost ~]# netstat -anpt | grep 8888
tcp6       0      0 :::8888                 :::*                    LISTEN      58760/java   
//確認(rèn)剛才定義的端口8888在監(jiān)聽
  • 由于其為圖像化界面,所以需要在桌面環(huán)境下執(zhí)行以下命令
[root@localhost /]# . /etc/profile
\\更新環(huán)境變量
[root@localhost /]# jconsole

淺談Tomcat安裝

淺談Tomcat安裝

淺談Tomcat安裝

七.配置使用https訪問tomcat服務(wù)器

[root@localhost /]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/conf/tomcat.keystore -validity 36500
//alias:別名,這里設(shè)置為tomcat;
//keyalg:證書算法,RSA;
//validity:證書有效期,單位為天
//keystore:指定證書存放路徑,可以自定義

輸入密鑰庫口令:  
再次輸入新口令: 
您的名字與姓氏是什么?
  [Unknown]:  xws
您的組織單位名稱是什么?
  [Unknown]:  aaa
您的組織名稱是什么?
  [Unknown]:  bbb
您所在的城市或區(qū)域名稱是什么?
  [Unknown]:  ccc
您所在的省/市/自治區(qū)名稱是什么?
  [Unknown]:  wwwe
該單位的雙字母國家/地區(qū)代碼是什么?
  [Unknown]:  qwe
CN=xws, OU=aaa, O=bbb, L=ccc, ST=wwwe, C=qwe是否正確?
  [否]:  y

正在為以下對(duì)象生成 2,048 位RSA密鑰對(duì)和自簽名證書 (SHA256withRSA) (有效期為 36,500 天):
     CN=xws, OU=aaa, O=bbb, L=ccc, ST=wwwe, C=qwe
輸入 <tomcat> 的密鑰口令
    (如果和密鑰庫口令相同, 按回車):  
[正在存儲(chǔ)/usr/local/tomcat/conf/tomcat.keystore]

Warning:
JKS 密鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore /usr/local/tomcat/conf/tomcat.keystore -destkeystore /usr/local/tomcat/conf/tomcat.keystore -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12。

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml   //可以添加也可以從原有的內(nèi)容稍作修改即可
 <Connector port="443"   protocol="org.apache.coyote.http11.Http11NioProtocol"                   //將原本的8443改為443
               maxThreads="150" SSLEnabled="true"
                keystoreFile="/usr/local/tomcat/conf/tomcat.keystore"                   //指定證書存放路徑
               keystorePass="123456">                      //指定生成證書所輸入的密碼
     </Connector>

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh      
  • 訪問如下:

淺談Tomcat安裝

向AI問一下細(xì)節(jié)

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

AI