溫馨提示×

溫馨提示×

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

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

部署Tomcat(Web)服務(wù)詳解

發(fā)布時(shí)間:2020-08-01 00:44:37 來源:網(wǎng)絡(luò) 閱讀:486 作者:筱振 欄目:系統(tǒng)運(yùn)維

一、Tomcat服務(wù)簡介

Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。一般來說,Tomcat雖然和Apache或者Nginx這些Web服務(wù)器一樣,具有處理HTML頁面的功能,然而由于其處理靜態(tài)HTML的能力遠(yuǎn)不及Apache或者Nginx,所以Tomcat通常是作為一個(gè)Servlet和JSP容器,單獨(dú)運(yùn)行在后端。如圖:
部署Tomcat(Web)服務(wù)詳解

Tomcat自5.x版本以來,其性能上已經(jīng)得到了大幅的提升,再加上其開放性的框架和可二次開發(fā)等特性,已經(jīng)完全可以用在訪問量不是很大的生產(chǎn)環(huán)境下。目前大多數(shù)用于JSP技術(shù)開發(fā)的電子商務(wù)網(wǎng)站已經(jīng)基本應(yīng)用了Tomcat。

二、安裝Tomcat服務(wù)

在安裝Tomcat之前必須先安裝JDK。JDK的全稱是Java Development Kit,是Sun公司免費(fèi)提供的Java語言的軟件開發(fā)工具包,其中包含Java虛擬機(jī)(JVM)。編寫好的Java源程序經(jīng)過編譯可形成Java字節(jié)碼,只要安裝了JDK,就可以利用JVM解釋這些字節(jié)碼文件,從而保證了Java的跨平臺性。

在平臺兼容性方面,JDK作為解釋字節(jié)碼文件并據(jù)此調(diào)用操作系統(tǒng)API實(shí)現(xiàn)對應(yīng)功能的Java虛擬機(jī),與操作系統(tǒng)類型和平臺位數(shù)密切相關(guān),因此存在不同類型的版本,而Tomcat也具有上述特征。Centos 7默認(rèn)情況下已經(jīng)安裝JDK。所以只需下載Tomcat軟件即可。

本次案例中使用的軟件包apache-tomcat-8.5.16.tar.gz網(wǎng)盤鏈接:https://pan.baidu.com/s/11Puem2_pMMhEnWAgriJ-sA
提取碼:3mzo

(1)檢查Java環(huán)境

[root@localhost ~]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
//用命令查看,已經(jīng)安裝完成。

(2)安裝配置Tomcat

Tomcat服務(wù)的安裝方式十分簡單,如下:

[root@localhost ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src
[root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8
//由于Tomcat軟件十分簡單,無須安裝
//為了日后的使用,建議更換其解壓后的目錄,并為其改名
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 
//使用Tomcat程序自帶的啟動(dòng)腳本啟動(dòng)Tomcat服務(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.
[root@localhost ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      3493/java   
//查看其監(jiān)聽端口(Tomcat服務(wù)默認(rèn)的端口是8080)
[root@localhost ~]# firewall-cmd --add-port=8080/tcp
success
//開啟防火墻其服務(wù)的端口

(3)客戶機(jī)訪問

部署Tomcat(Web)服務(wù)詳解

三、Tomcat配置文件詳解

(1)Tomcat配置相關(guān)說明

剛才安裝移動(dòng)后的主目錄是/usr/local/tomcat8/

[root@localhost ~]# ll /usr/local/tomcat8/
總用量 92
drwxr-x---. 2 root root  4096 9月   4 23:56 bin
drwx------. 3 root root   254 9月   4 23:57 conf
drwxr-x---. 2 root root  4096 9月   4 23:56 lib
-rw-r-----. 1 root root 57092 6月  22 2017 LICENSE
drwxr-x---. 2 root root   240 9月   5 00:02 logs
-rw-r-----. 1 root root  1723 6月  22 2017 NOTICE
-rw-r-----. 1 root root  7064 6月  22 2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 6月  22 2017 RUNNING.txt
drwxr-x---. 2 root root    30 9月   4 23:56 temp
drwxr-x---. 7 root root    81 6月  22 2017 webapps
drwxr-x---. 3 root root    22 9月   4 23:57 work

主要目錄說明:

  • bin:存放Windows或Linux平臺上啟動(dòng)或關(guān)閉Tomcat的腳本文件;
  • conf:存放Tomcat服務(wù)器的各種全局配置文件,其中最重要的是server.xml和web.xml;
  • lib:存放Tomcat運(yùn)行需要的庫文件(JARS);
  • logs:存放Tomcat執(zhí)行時(shí)的LOG文件;
  • webapps:Tomcat的主要Web發(fā)布目錄(包括應(yīng)用程序?qū)嵗?/li>
  • work:存放JSP編譯后產(chǎn)生的class文件。
[root@localhost ~]# ll /usr/local/tomcat8/conf/
總用量 224
drwxr-x---. 3 root root     23 9月   4 23:57 Catalina
-rw-------. 1 root root  13816 6月  22 2017 catalina.policy
-rw-------. 1 root root   7376 6月  22 2017 catalina.properties
-rw-------. 1 root root   1338 6月  22 2017 context.xml
-rw-------. 1 root root   1149 6月  22 2017 jaspic-providers.xml
-rw-------. 1 root root   2358 6月  22 2017 jaspic-providers.xsd
-rw-------. 1 root root   3622 6月  22 2017 logging.properties
-rw-------. 1 root root   7511 6月  22 2017 server.xml
-rw-------. 1 root root   2164 6月  22 2017 tomcat-users.xml
-rw-------. 1 root root   2633 6月  22 2017 tomcat-users.xsd
-rw-------. 1 root root 168251 6月  22 2017 web.xml

主要配置文件說明:

  • catalina.policy:權(quán)限控制配置文件;
  • catalina.properties:Tomcat屬性配置文件;
  • context.xml:上下文配置文件;
  • logging.properties:日志log相關(guān)配置文件;
  • server.xml:主配置文件;
  • tomcat-users.xml:manager-gui管理配置文件(Tomcat安裝后默認(rèn)提供一個(gè)manager管理界面,通過配置該文件可以開啟訪問);
  • web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相關(guān)配置。

(2)Tomcat主配置文件說明

server.xml為Tomcat的主要配置文件,通過配置該文件,可以修改Tomcat的啟動(dòng)端口、網(wǎng)站目錄、虛擬主機(jī)、開啟https等重要功能。

整個(gè)server.xml由以下結(jié)構(gòu)構(gòu)成:<Server>、<Service>、<Connector /><Engine >、<Host>、<Context>、</Context></Host></Engine></Service>和</Server>。

以下是默認(rèn)安裝server.xml文件的部分內(nèi)容,其中<!-- -->內(nèi)的內(nèi)容時(shí)注釋信息(經(jīng)常修改的地方已經(jīng)附有注釋信息)。

[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 
<?xml version="1.0" encoding="UTF-8"?>
............                                  //省略部分內(nèi)容
<Server port="8005" shutdown="SHUTDOWN">          
//Tomcat關(guān)閉端口,默認(rèn)只對本機(jī)地址開放,可以在本機(jī)通過Telnet  127.0.0.1 8005訪問,
//對Tomcat進(jìn)行關(guān)閉操作
............                                  //省略部分內(nèi)容
 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
//Tomcat啟動(dòng)的默認(rèn)端口號8080,可以根據(jù)需要進(jìn)行更改。
............                                  //省略部分內(nèi)容
 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
//Tomcat啟動(dòng)AJP 1.3連接器時(shí)默認(rèn)的端口號,可以根據(jù)需要進(jìn)行更改
............                                  //省略部分內(nèi)容
//以下為Tomcat定義虛擬主機(jī)時(shí)的配置及日志配置
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

(3)Tomcat Server的組成部分說明

1)Server

server元素代表了整個(gè)CatAlina的servlet容器。

2)Service

Service是這樣一個(gè)集合:它由一個(gè)或者多個(gè)Connector,以及一個(gè)Engine(負(fù)責(zé)處理所有Connector所獲得的客戶請求)組成。

3)Connector

一個(gè)Connector在某個(gè)指定端口上偵聽客戶請求,并將獲得的請求交給Engine來處理,從Engine處獲得回應(yīng)并返回客戶。

Tomcat有兩個(gè)典型的Connector:一個(gè)直接偵聽來自browser的http請求,一個(gè)偵聽來自其他webserver的請求。

  • Coyote HTTP/1.1 Connector在端口8080處偵聽來自客戶browser(瀏覽)的http請求;
  • Coyote JK2 Connector 在端口8009處偵聽來自其他文本server(Apache)的servlet/jsp代理請求。
4)Engine:

Engine下可以配置多個(gè)虛擬主機(jī)virtual host,每個(gè)虛擬主機(jī)都有一個(gè)域名。

當(dāng)Engine獲得一個(gè)請求時(shí),它把該請求匹配到某個(gè)Host上,然后把該請求交給該host來處理。

Engine有一個(gè)默認(rèn)虛擬主機(jī),當(dāng)請求無法匹配到任何一個(gè)host上時(shí),將交給該默認(rèn)主機(jī)處理。

5)Host

Host代表一個(gè)virtual Host(虛擬主機(jī)),每個(gè)虛擬主機(jī)和某個(gè)網(wǎng)絡(luò)域名Domain Name相匹配。

每個(gè)虛擬主機(jī)下都可以部署一個(gè)或多個(gè)web app,每個(gè)web app對應(yīng)一個(gè)Context,有一個(gè)Context path。

當(dāng)host獲得一個(gè)請求時(shí),將把該請求匹配到某個(gè)Context上,然后把該請求交給該Context來處理,匹配的方法是“最長匹配”,所以一個(gè)path==""的Context將成為該Host的默認(rèn)Context。
所有無法和其他Context的路徑名匹配的請求都將最終和該默認(rèn)Context匹配。

6)Context

一個(gè)Context對應(yīng)一個(gè)web application ,一個(gè)web application由一個(gè)或者多個(gè)servlet組成。

四、建立Java的虛擬目錄站點(diǎn)

(1)建立虛擬目錄,用于存放網(wǎng)站文件

[root@localhost ~]# mkdir -p /web/webapp

(2)建立一個(gè)Java語言編寫的測試文件

[root@localhost ~]# vim /web/webapp/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test1 page</title>
</head>
<body>
<% out.println("welcome to test");%>
</body>
</html>

(3)修改Tomcat的主配置文件

[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 
                          ……………………          //省略部分內(nèi)容
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
//host定義一個(gè)虛擬主機(jī),域名為localhost,appBase定義應(yīng)用程序基準(zhǔn)目錄,unpackWARs定義是否自動(dòng)解壓,autoDeploy定義是否自動(dòng)部署
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context docBase="/web/webapp" path="" reloadable="false">
        </Context>
//context定義一個(gè)web應(yīng)用(虛擬目錄),path指定訪問目錄,docBase定義網(wǎng)頁目錄,當(dāng)應(yīng)用程序發(fā)生變化時(shí)候,自動(dòng)裝載,不用重啟tomcat(手動(dòng)添加 <Context  ……></Context>內(nèi)容)

      </Host>
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
//重啟Tomcat服務(wù)

(4)客戶機(jī)訪問測試

部署Tomcat(Web)服務(wù)詳解

這說明Tomcat服務(wù)虛擬目錄已經(jīng)生效!

———————— 本文至此結(jié)束,感謝閱讀 ————————

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

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

AI