Tomcat 基礎理論+實驗

前言:

  • Tomcat是一款免費、開放源代碼的Web應用服務器,是Apache軟件基金會(Apache Software Foundation)Jakarta項目中的一個核心項目
  • Tomcat由Apache、Sun和一些公司及個人共同開發而成,深受Java愛好者的喜好,並得到部分軟件開發商的認可,是目前比較流行的Web應用服務器,官網爲:https://tomcat.apache.org/

在這裏插入圖片描述

一、Tomcat 介紹

1.1 Tomcat 核心組件

在這裏插入圖片描述

  • ① Web容器

    負責底層的HTTP協議

  • ② Servlet容器

    由catalina腳本幫忙處理的servlet代碼,主要處理後端邏輯業務

    catalina實際處理的是Servlet代碼,而Servlet代碼是由Java編寫的

  • ③ JSP容器(JAVA Scripts page)

    JSP:在正常的html標籤中嵌入一些java代碼

    這些JSP最終會被翻譯成Servlet代碼被執行

    主要提供提供前端頁面展示

  • 小結:tomcat就是一個容器,在這個容器中有三大核心組件:WEB、Servlet 和JSP,所以Tomcat是極其輕量級別的,核心組件都是支持基本運行的組件

1.2 Tomcat處理請求過程
1.2.1 Tomcat處理請求原理圖

在這裏插入圖片描述

  • 處理請求詳細過程
  • ① 用戶訪問網站時,請求被髮送到本機端口(connector開放的端口就是8080)8080,被在端口監聽的Coyote HTTP/1.1 connector獲取
  • ② 接受請求之後交給container容器進行處理,container中有一個engine引擎運作
  • ③ 基於引擎支撐,容器中會跑很多host虛擬主機,這些虛擬主機中也會有很多context進程(引擎),此處的context類似於前端頁面JSP,具體加載到的任務程序會運行servlet(進行邏輯業務處理)
  • ④ Servlet處理完後會返回給context
  • ⑤ context返回給engine引擎
  • ⑥ engine返回給端口
  • ⑦ 端口最後將頁面展現給用戶

CGI:底層通用網關接口(協議) Nginx調用的接口,當有了web服務支持CGI接口之後,想要web服務反饋頁面,只有調用通用網關接口纔可以反饋頁面

1.2.2 四個子容器作用簡述
  • Engine:引擎,用來管理多個站點,一個Service最多只能有一個Engine

  • Host:代表一個站點,也可以叫虛擬主機,通過配置Host就可以添加站點

  • Contxt:代表一個應用程序,對應着平時開發的一套程序,或者一個WEB-INF目錄以及web.xml文件

  • Wrapper:每一個Wrapper封裝着一個Servlet

  • Tomcat頂層架構小結

    ① Tomcat中只有一個Server,一個Server可以有多個Service,一個Service可以有多個Connector和一個Container

    ② Server掌管着整個Tomcat的生死大權

    ③ Service時對外提供服務的

    ④ Connector用於接受請求並將請求封裝成Request和Response來具體處理

    ⑤ Container用於封裝和管理Servlet,以及具體處理request請求

二、Tomcat部署

2.1 實驗環境
  • 一臺centos7虛擬機

    tomcat節點 IP地址:192.168.226.128

    軟件包

    • jdk-8u231-linux-x64.tar.gz
    • apache-tomcat-8.5.50.tar.gz

PS:在安裝Tomcat之前必須先安裝JDK,JDK是Sun公司提供的Java語言的軟件開發大工具包,其中包含Java虛擬機(JVM)。

編寫好的JAVA源程序經過編譯可以形成java的字節碼,只要安裝了JDK,就可以利用JVM解釋這些字節碼文件,從而保證了JAVA的跨平臺性。在平臺兼容性方面,JDK作爲解釋字節碼並據此調用操作系統的API(功能接口)實現對應功能的JAVA虛擬機,與操作系統類型和平臺位數密切相關,因此存在不同版本

2.2 實驗過程
2.2.1 jdk安裝
  • 軟件包獲取

    ① 使用宿主機下載tomcat軟件包

    ② 安裝vsftpd,在線下載tomcat包:

yum install vsftpd -y
systemctl start vsftpd 

#在線下載
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
  • 安裝jdk
[root@localhost ~]# mount.cifs //192.168.226.1/LAMP-C7 /mnt
Password for root@//192.168.226.1/LAMP-C7:    
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# rpm -ivh jdk-8u201-linux-x64.rpm 
.....省略部分內容
[[root@localhost mnt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# 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)
  • 添加環境變量
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
[root@localhost jdk1.8.0_201-amd64]# tail -3 /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_231
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

#刷新生效    
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
2.2.2 安裝Tomcat
[root@localhost jdk1.8.0_201-amd64]# cd /mnt

[root@localhost mnt]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt

#將tomcat文件移動到/usr/local,同時重命名爲tomcat
[root@localhost mnt]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat

#開啓服務
root@localhost mnt]# mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
[root@localhost mnt]# cd /usr/local/tomcat/bin/
#執行啓動腳本
[root@localhost bin]# ./startup.sh 
[root@localhost bin]# netstat -natp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13948/java                 

三、訪問Tomcat服務器

3.1 訪問測試

在這裏插入圖片描述

3.2 Tomcat目錄文件詳解
[root@localhost tomcat]# ll
total 92
drwxr-x---. 2 root root  4096 Mar 30 15:36 bin
drwx------. 3 root root   254 Mar 30 15:36 conf
drwxr-x---. 2 root root  4096 Mar 30 15:36 lib
-rw-r-----. 1 root root 57092 Jun 22  2017 LICENSE
drwxr-x---. 2 root root   197 Mar 30 15:36 logs
-rw-r-----. 1 root root  1723 Jun 22  2017 NOTICE
-rw-r-----. 1 root root  7064 Jun 22  2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 Jun 22  2017 RUNNING.txt
drwxr-x---. 2 root root    30 Mar 30 15:36 temp
drwxr-x---. 7 root root    81 Jun 22  2017 webapps
drwxr-x---. 3 root root    22 Mar 30 15:36 work
  • 配置詳解

    ① bin :啓動和關閉Tomcat腳本文件

    ② conf:存放Tomcat服務器各種配置文件

    ③ lib :Tomcat服務器的jar包

    ④ logs:Tomcat日誌

    ⑤ temp:Tomcat運行時產生的文件

    ⑥ webapps:項目資源的目錄

    ⑦ work:Tomcat工作目錄

3.3 Tomcat配置文件詳解
[root@localhost conf]# ll
total 224
drwxr-x---. 3 root root     23 Mar 30 15:36 Catalina
-rw-------. 1 root root  13816 Jun 22  2017 catalina.policy
-rw-------. 1 root root   7376 Jun 22  2017 catalina.properties
-rw-------. 1 root root   1338 Jun 22  2017 context.xml
-rw-------. 1 root root   1149 Jun 22  2017 jaspic-providers.xml
-rw-------. 1 root root   2358 Jun 22  2017 jaspic-providers.xsd
-rw-------. 1 root root   3622 Jun 22  2017 logging.properties
-rw-------. 1 root root   7511 Jun 22  2017 server.xml
-rw-------. 1 root root   2164 Jun 22  2017 tomcat-users.xml
-rw-------. 1 root root   2633 Jun 22  2017 tomcat-users.xsd
-rw-------. 1 root root 168251 Jun 22  2017 web.xml
  • 配置文件詳解
    • ① catalina.policy:權限控制配置文件
    • ② catalina.properties:Tomcat的屬性配置文件
    • ③ context.xml:上下文配置文件
    • ④ logging.properties:日誌相關配置文件
    • ⑤ server.xml:主配置文件,通過配置文件,可以修改tomcat的啓動端口、網站目錄、虛擬主機、開啓https等功能
    • ⑥ tomcat-user.xml/.xsd:管理用戶配置文件
      制配置文件
      ⑦ web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相關配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章