溫馨提示×

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

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

Tomcat的安裝和基本使用方法

發(fā)布時(shí)間:2021-08-24 18:43:47 來(lái)源:億速云 閱讀:121 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“Tomcat的安裝和基本使用方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Tomcat的安裝和基本使用方法”吧!

安裝

jdk安裝

jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

1)解壓并配置環(huán)境變量
#cd /usr/local/src/
#tar xf jdk-8u231-linux-x64.tar.gz
#ln -s jdk1.8.0_231/ jdk
#cat > /etc/profile.d/jdk.sh << EOF
export JAVA_HOME=/usr/local/src/jdk
export CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
#source /etc/profile.d/jdk.sh

2)查看jdk版本
#java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

tomcat安裝

安裝包下載地址:https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz

1)解壓并為T(mén)omcat做軟連接
#cd /usr/local/src/
#tar xf apache-tomcat-8.5.42.tar.gz
#ln -s apache-tomcat-8.5.42 tomcat

2)啟動(dòng)和查看Tomcat狀態(tài)
#cd tomcat/bin/
#./startup.sh 
Using CATALINA_BASE:   /usr/local/src/tomcat
Using CATALINA_HOME:   /usr/local/src/tomcat
Using CATALINA_TMPDIR: /usr/local/src/tomcat/temp
Using JRE_HOME:        /usr/local/src/jdk
Using CLASSPATH:       /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar
Tomcat started.
#ps -ef |grep tomcat|grep -v grep
root       6377      1  2 21:19 pts/0    00:00:05 /usr/local/src/jdk/bin/java -Djava.util.logging.config.file=/usr/local/src/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/src/tomcat -Dcatalina.home=/usr/local/src/tomcat -Djava.io.tmpdir=/usr/local/src/tomcat/temp org.apache.catalina.startup.Bootstrap start

上面的操作,啟動(dòng)身份是root,如果要使用普通用戶(hù)啟動(dòng)可以使用下面的這種方法
#useradd -r java
#chown -R java.java /usr/local/src/tomcat/
#su - java -c '/usr/local/src/tomcat/bin/startup.sh'
su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/src/tomcat
Using CATALINA_HOME:   /usr/local/src/tomcat
Using CATALINA_TMPDIR: /usr/local/src/tomcat/temp
Using JRE_HOME:        /usr/local/src/jdk
Using CLASSPATH:       /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar
Tomcat started.
#ps aux |grep tomcat|grep -v grep
java       6529  4.5  4.7 2995916 87744 ?       Sl   21:25   0:02 /usr/local/src/jdk/bin/java -Djava.util.logging.config.file=/usr/local/src/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/src/tomcat -Dcatalina.home=/usr/local/src/tomcat -Djava.io.tmpdir=/usr/local/src/tomcat/temp org.apache.catalina.startup.Bootstrap start

使用systemd管理Tomcat服務(wù)

1.首先,需要為tomcat配置pid
#sed -i '/[ -z "\$CATALINA_BASE" ] && CATALINA_BASE="\$CATALINA_HOME"/a\CATALINA_PID="$CATALINA_BASE/tomcat.pid"' /usr/local/src/tomcat/bin/catalina.sh
配置后結(jié)果如下
141 # Copy CATALINA_BASE from CATALINA_HOME if not already set
142 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
143 CATALINA_PID="$CATALINA_BASE/tomcat.pid" # 設(shè)置pid。一定要加在CATALINA_BASE定義后面,要不然pid會(huì)生成到/下面

2.創(chuàng)建服務(wù)腳本
#cat > /usr/lib/systemd/system/tomcat.service << EOF
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/src/jdk"
PIDFile=/usr/local/src/tomcat/tomcat.pid
ExecStart=/usr/local/src/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true
SuccessExitStatus=143                                                   

[Install]
WantedBy=multi-user.target
EOF

3.啟動(dòng)Tomcat并設(shè)置為開(kāi)機(jī)自啟動(dòng),和查看狀態(tài)
#systemctl enable --now tomcat && systemctl status tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-01-15 17:23:21 CST; 7ms ago
  Process: 9615 ExecStart=/usr/local/src/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 9623 (java)
   CGroup: /system.slice/tomcat.service
           └─9623 /usr/local/src/jdk/bin/java -Djava.util.logging.config.file=/usr/local/src/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli....

Jan 15 17:23:21 CentOS7-01.localdomain systemd[1]: Starting Apache Tomcat Web Application Container...
Jan 15 17:23:21 CentOS7-01.localdomain startup.sh[9615]: Tomcat started.
Jan 15 17:23:21 CentOS7-01.localdomain systemd[1]: Started Apache Tomcat Web Application Container.

使用systemd管理Tomcat服務(wù)遇到的問(wèn)題及解決辦法

1.執(zhí)行systemctl start tomcat命令
#systemctl start tomcat
Job for tomcat.service failed because the control process exited with error code. See "systemctl status tomcat.service" and "journalctl -xe" for details.
#journalctl -xe
......
startup.sh[10247]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
startup.sh[10247]: At least one of these environment variable is needed to run this program
......
如果在tomcat的service文件中沒(méi)有設(shè)置jdk的環(huán)境變量,就會(huì)在啟動(dòng)tomcat的時(shí)候報(bào)錯(cuò),產(chǎn)生以上的錯(cuò)誤信息,為解決此問(wèn)題,需要在service文件中添加如下配置
[Service]
Environment="JAVA_HOME=/usr/local/src/jdk"
注:就算在/etc/profile.d/目錄下單獨(dú)配置了jdk環(huán)境變量,對(duì)于使用systemd管理tomcat服務(wù)也是無(wú)效的,所有需要在tomcat的service文件中配置。

2.執(zhí)行systemctl stop tomcat命令
#systemctl stop tomcat
#systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2020-01-15 19:17:27 CST; 2min 21s ago
  Process: 10635 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 10574 ExecStart=/usr/local/src/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 10582 (code=exited, status=143)

Jan 15 19:17:19 CentOS7-01.localdomain systemd[1]: Starting Apache Tomcat Web Application Container...
Jan 15 19:17:19 CentOS7-01.localdomain startup.sh[10574]: Tomcat started.
Jan 15 19:17:19 CentOS7-01.localdomain systemd[1]: Started Apache Tomcat Web Application Container.
Jan 15 19:17:27 CentOS7-01.localdomain systemd[1]: Stopping Apache Tomcat Web Application Container...
Jan 15 19:17:27 CentOS7-01.localdomain systemd[1]: tomcat.service: main process exited, code=exited, status=143/n/a
Jan 15 19:17:27 CentOS7-01.localdomain systemd[1]: Stopped Apache Tomcat Web Application Container.
Jan 15 19:17:27 CentOS7-01.localdomain systemd[1]: Unit tomcat.service entered failed state.
Jan 15 19:17:27 CentOS7-01.localdomain systemd[1]: tomcat.service failed.

停止tomcat的時(shí)候并沒(méi)有報(bào)錯(cuò),但是查看tomcat的status時(shí),發(fā)現(xiàn)tomcat服務(wù)進(jìn)入了失敗的狀態(tài),為解決此問(wèn)題,需要在tomcat的service中添加如下配置
[Service]
SuccessExitStatus=143

參考文檔:https://stackoverflow.com/questions/40331741/systemd-tomcat-service-failed-with-no-errors

目錄結(jié)構(gòu)

目錄說(shuō)明
bin服務(wù)啟動(dòng)、停止等相關(guān)
conf配置文件
lib庫(kù)目錄
logs日志目錄
webapps應(yīng)用程序,應(yīng)用部署目錄
workjsp編譯后的結(jié)果文件

配置文件

文件名說(shuō)明
server.xml主配置文件
web.xml每個(gè)webapp只有“部署”后才能被訪問(wèn),它的部署方式通常由web.xml進(jìn)行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認(rèn)部署相關(guān)的配置
context.xml每個(gè)webapp都可以專(zhuān)用的配置文件,它通常由專(zhuān)用的配置文件context.xml來(lái)定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認(rèn)配置
tomcat-users.xml用戶(hù)認(rèn)證的賬號(hào)和密碼文件
catalina.policy當(dāng)使用-security選項(xiàng)啟動(dòng)tomcat時(shí),用于為tomcat設(shè)置安全策略
catalina.propertiesJava屬性的定義文件,用于設(shè)定類(lèi)加載器路徑,以及一些與JVM調(diào)優(yōu)相關(guān)參數(shù)
logging.properties日志系統(tǒng)相關(guān)的配置。log4j

組件分類(lèi)

類(lèi)別說(shuō)明
頂級(jí)組件Server,代表整個(gè)Tomcat容器
服務(wù)類(lèi)組件Service,組織Engine和Connector,里面只能包含一個(gè)Engine
連接器組件Connector,有HTTP、HTTPS、A JP協(xié)議的連接器
容器類(lèi)Engine、Host、Context都是容器類(lèi)組件,可以嵌入其它組件,內(nèi)部配置如何運(yùn)行應(yīng)用程序。
內(nèi)嵌類(lèi)可以?xún)?nèi)嵌到其他組件內(nèi),valve、logger、realm、loader、manager等。以logger舉例,在不同容器組件內(nèi)定義。
集群類(lèi)組件listener、cluster

內(nèi)部組成結(jié)構(gòu)

由上述組件就構(gòu)成了Tomcat,如下圖

Tomcat的安裝和基本使用方法  

名稱(chēng)說(shuō)明
ServerTomcat運(yùn)行的進(jìn)程實(shí)例
Connector負(fù)責(zé)客戶(hù)端的HTTP、HTTPS、A JP等協(xié)議的連接。一個(gè)Connector只屬于某一個(gè)Engine
Service用來(lái)組織Engine和Connector的關(guān)系
Engine響應(yīng)并處理用戶(hù)請(qǐng)求。一個(gè)引擎上可以綁定多個(gè)Connector
Host虛擬主機(jī)
Context應(yīng)用的上下文,配置路徑映射path => directory
AJP(Apache Jserv protocol)是一種基于TCP的二進(jìn)制通訊協(xié)議。

核心組件說(shuō)明

  • Tomcat啟動(dòng)一個(gè)Server進(jìn)程??梢詥?dòng)多個(gè)Server,但一般只啟動(dòng)一個(gè)

  • 創(chuàng)建一個(gè)Service提供服務(wù)??梢詣?chuàng)建多個(gè)Service,但一般也只創(chuàng)建一個(gè)

    • 每個(gè)Service中,是Engine和其連接器Connector的關(guān)聯(lián)配置

  • 可以為這個(gè)Server提供多個(gè)連接器Connector,這些Connector使用了不同的協(xié)議,綁定了不同的端口。其作用就是處理來(lái)自客戶(hù)端的不同的連接請(qǐng)求或響應(yīng)

  • Service內(nèi)部還定義了Engine,引擎才是真正的處理請(qǐng)求的入口,其內(nèi)部定義多個(gè)虛擬主機(jī)Host

    • Engine對(duì)請(qǐng)求頭做了分析,將請(qǐng)求發(fā)送給相應(yīng)的虛擬主機(jī)

    • 如果沒(méi)有匹配,數(shù)據(jù)就發(fā)往Engine上的defaultHost缺省虛擬主機(jī)

    • Engine上的缺省虛擬主機(jī)可以修改

  • Host定義虛擬主機(jī),虛擬主機(jī)有name名稱(chēng),通過(guò)名稱(chēng)匹配

  • Context定義應(yīng)用程序單獨(dú)的路徑映射和配置

Tomcat處理請(qǐng)求的流程

假設(shè)來(lái)自客戶(hù)的請(qǐng)求為:http://localhost:8080/test/index.jsp
  1)瀏覽器端的請(qǐng)求被發(fā)送到服務(wù)端端口8080,Tomcat進(jìn)程監(jiān)聽(tīng)在此端口上。通過(guò)偵聽(tīng)的HTTP/1.1 Connector獲得此請(qǐng)求。                  
  2)Connector把該請(qǐng)求交給它所在的Service的Engine來(lái)處理,并等待Engine的響應(yīng)
  3)Engine獲得請(qǐng)求localhost:8080/test/index.jsp,匹配它所有虛擬主機(jī)Host
  4)Engine匹配到名為localhost的Host。即使匹配不到也把請(qǐng)求交給該Host處理,因?yàn)樵揌ost被定義為該Engine的默認(rèn)主機(jī)
  5)localhost Host獲得請(qǐng)求/test/index.jsp,匹配它所擁有的所有Context
  6)Host匹配到路徑為/test的Context
  7)path=/test的Context獲得請(qǐng)求/index.jsp,在它的mapping table中尋找對(duì)應(yīng)的servlet
  8)Context匹配到URL PATTERN為*.jsp 的servlet,對(duì)應(yīng)于JspServlet類(lèi)構(gòu)造HttpServletRequest對(duì)象和HttpServletResponse對(duì)象,作為參數(shù)調(diào)用JspServlet的doGet或doPost方法。
  9)Context把執(zhí)行完了之后的HttpServletResponse對(duì)象返回給Host
  10)Host把HttpServletResponse對(duì)象返回給Engine
  11)Engine把HttpServletResponse對(duì)象返回給Connector
  12)Connector把HttpServletResponse對(duì)象返回給瀏覽器端

應(yīng)用部署

根目錄

Tomcat中默認(rèn)網(wǎng)站根目錄是CATALINA_BASE/webapps/,在Tomcat的webapps目錄中,有個(gè)非常特殊的目錄ROOT,它就是網(wǎng)站默認(rèn)根目錄。
每一個(gè)虛擬主機(jī)的目錄都可以使用appBase配置自己的站點(diǎn)目錄,里面都可以使用ROOT目錄作為主站目錄。

JSP WebApp目錄結(jié)構(gòu)

主頁(yè)配置:一般指定為index.jsp或index.html
WEB-INF/:當(dāng)前WebApp的私有資源路徑,通常存儲(chǔ)當(dāng)前應(yīng)用使用的web.xml和context.xml配置文件
META-INF/:類(lèi)似于WEB-INF
classes/:類(lèi)文件,當(dāng)前webapp需要的類(lèi)
lib/:當(dāng)前應(yīng)用依賴(lài)的jar包

更改默認(rèn)主頁(yè)文件

默認(rèn)情況下,訪問(wèn)Tomcat的主頁(yè),返回的內(nèi)容是CATALINA_BASE/webapps/ROOT/index.jsp文件提供的,這里將在CATALINA_BASE/webapps/ROOT/下添加一個(gè)index.html文件,內(nèi)容如下
#cat /usr/local/src/tomcat/webapps/ROOT/index.html 
tomcat index.html
添加完該文件內(nèi)容后再訪問(wèn)Tomcat默認(rèn)頁(yè),返回結(jié)果如下
#curl localhost:8080
tomcat index.html

產(chǎn)生上面結(jié)果的原因是CATALINA_BASE/conf/web.xml文件中的<welcome-file-list>標(biāo)簽內(nèi)容(默認(rèn)頁(yè))所導(dǎo)致的,復(fù)制到CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml中,如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

   <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

配置修改后,再次訪問(wèn)首頁(yè),結(jié)果如下圖

Tomcat的安裝和基本使用方法  

從上面的驗(yàn)證結(jié)果可以發(fā)現(xiàn),Tomcat的默認(rèn)頁(yè)訪問(wèn)順序是從上往下依次匹配的

webapp歸檔格式

.war:WebApp打包
.jar:EJB類(lèi)打包文件
.rar:資源適配器類(lèi)打包文件
.ear:企業(yè)級(jí)WebApp打包

傳統(tǒng)應(yīng)用開(kāi)發(fā)測(cè)試后,通常打包為war格式,這種文件部署到了Tomcat的webapps下,還可以自動(dòng)展開(kāi)。

部署Deploy

  • 部署:將webapp的源文件放置到目標(biāo)目錄,通過(guò)web.xml和context.xml文件中配置的路徑就可以訪問(wèn)該webapp,通過(guò)類(lèi)加載器加載其特有的類(lèi)和依賴(lài)的類(lèi)到JVM上。

    • 自動(dòng)部署Auto Deploy:Tomcat發(fā)現(xiàn)多了這個(gè)應(yīng)用就把它加載并啟動(dòng)起來(lái)

    • 手動(dòng)部署

    • 冷部署:將webapp放到指定目錄,才去啟動(dòng)Tomcat

    • 熱部署:Tomcat服務(wù)不停止,需要依賴(lài)manager、ant腳本、tcd(tomcat client
      deployer)等工具

  • 反部署undeploy:停止webapp的運(yùn)行,并從JVM上清除已經(jīng)加載的類(lèi),從Tomcat應(yīng)用目錄中移除部署的文件

  • 啟動(dòng)start:是webapp能夠訪問(wèn)

  • 停止stop:webapp不能訪問(wèn),不能提供服務(wù),但是JVM并不清除它

實(shí)驗(yàn)

1 添加一個(gè)test.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jsp例子</title>
</head>
<body>
后面的內(nèi)容是服務(wù)器端動(dòng)態(tài)生成字符串,最后拼接在一起
<%
out.println("hello jsp");
%>
<br>
<%=request.getRequestURL()%>
</body>
</html>

把test.jsp放到ROOT下去,然后訪問(wèn)http://YourIP:8080/test.jsp
立即可以看到,這是通過(guò)路徑映射找到相應(yīng)的test.jsp后,轉(zhuǎn)換成test_jsp.java,再編譯成test_jsp.class

CATALINA_BASE/work/Catalina/localhost/ROOT/org/apache/jsp/ 目錄下有轉(zhuǎn)換后的文件
2 添加一個(gè)應(yīng)用
模擬部署一個(gè)應(yīng)用

常見(jiàn)開(kāi)發(fā)項(xiàng)目目錄組成結(jié)構(gòu)
#mkdir projects/myapp/{WEB-INF,classes,lib} -p
#tree projects/
projects/
└── myapp
    ├── classes
    ├── lib
    └── WEB-INF

4 directories, 0 files

常見(jiàn)應(yīng)用首頁(yè),內(nèi)容就用上面的test.jsp
#cp webapps/ROOT/test.jsp projects/myapp/index.jsp

復(fù)制項(xiàng)目目錄到webapps目錄下去
#cp -r projects/myapp/ /usr/local/src/tomcat/webapps/

訪問(wèn)測(cè)試http://YourIP:8080/myapp

主配置文件詳解

CATALINA_BASE/conf/server.xml

1)8005端口

<Server port="8005" shutdown="SHUTDOWN">

該端口是Tomcat的管理端口,默認(rèn)監(jiān)聽(tīng)在127.0.0.1上。SHUTDOWN這個(gè)字符串接收到后就會(huì)關(guān)閉此Server。

#ss -nlt|grep 8080
LISTEN     0      100       [::]:8080                  [::]:*  
#telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
Connection closed by foreign host.

這個(gè)管理功能建議禁用,將SHUTDOWN改為一串猜不出來(lái)的字符串,例如
<Server port="8005" shutdown="4dbbcd8bf182d05bed2b5ef419397b0d">

2)用戶(hù)認(rèn)證

CATALINA_BASE/conf/tomcat-users.xml

Tomcat的安裝和基本使用方法

如果想要使用Manager App,需要一個(gè)角色manager-gui,在CATALINA_BASE/conf/tomcat-users.xml配置文件中添加,如下
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
  <role rolename="manager-gui"/>
  <user username="test" password="test" roles="manager-gui"/>
</tomcat-users>

Tomcat啟動(dòng)加載后,這些內(nèi)容是常駐內(nèi)存的。如果配置了新的用戶(hù),需要重啟Tomcat。訪問(wèn)Manager App

Tomcat的安裝和基本使用方法

訪問(wèn)manager的時(shí)候告訴403,提示中告訴去manager的context.xml中修改,文件路徑CATALINA_BASE/webapps/manager/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
從配置文件中可以看到allow后面的正則表達(dá)式寫(xiě)的是只允許本地訪問(wèn),但我當(dāng)前的地址是192.168段的,所有需要添加正則表達(dá)式以支持訪問(wèn),配置后如下
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.\d+\.\d+"

重啟后再次訪問(wèn)測(cè)試

Tomcat的安裝和基本使用方法

3)Service

<Service name="Catalina">

一般情況下,一個(gè)Server實(shí)例配置一個(gè)Service,name屬性相當(dāng)于該Service的ID。

4)連接器配置

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

redirectPort,如果訪問(wèn)HTTPS協(xié)議,自動(dòng)轉(zhuǎn)向這個(gè)連接器。但大多數(shù)時(shí)候,Tomcat并不會(huì)開(kāi)啟HTTPS,因?yàn)門(mén)omcat往往部署在內(nèi)部,HTTPS性能較差。

5)引擎配置

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

defaultHost指向內(nèi)部定義某虛擬主機(jī)。缺省虛擬主機(jī)可以改動(dòng),默認(rèn)localhost。

6) 虛擬主機(jī)配置

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

配置說(shuō)明:
name #必須是主機(jī)名,用主機(jī)名來(lái)匹配。
appBase #當(dāng)前主機(jī)的網(wǎng)頁(yè)根目錄,是相對(duì)于CATALINA_HOME,也可以使用絕對(duì)路徑
unpackWARs #是否自動(dòng)解壓war格式
autoDeploy #熱部署,自動(dòng)加載并運(yùn)行應(yīng)用

虛擬主機(jī)配置實(shí)驗(yàn)

嘗試再配置一個(gè)虛擬主機(jī),并將myapp部署到/data/webapps目錄下

<Host name="www.hechunping.com" appBase="/data/webapps/" unpackWARs="true"
autoDeploy="false" />

#mkdir /data/webapps -p
#cp -r projects/myapp/ /data/webapps/ROOT
剛才在虛擬主機(jī)中主機(jī)名定義www.hechunping.com,所有需要在宿主機(jī)的hosts文件中添加域名解析

訪問(wèn)測(cè)試

Tomcat的安裝和基本使用方法  

Context配置

Context作用

  • 路徑映射

  • 應(yīng)用獨(dú)立配置,例如單獨(dú)配置應(yīng)用日志、單獨(dú)配置應(yīng)用訪問(wèn)控制

<Context path="/test" docBase="/data/test" reloadable="false" />

配置說(shuō)明:
path #指的是訪問(wèn)的路徑
docBase #可以是絕對(duì)路徑,也可以是相對(duì)路徑(相對(duì)于Host的appBase)
reloadable #true表示如果WEB-INF/classes或META-INF/lib目錄下.class文件有改動(dòng),就會(huì)將WEB應(yīng)用重新加載,性能消耗很大。生產(chǎn)環(huán)境中,會(huì)使用false來(lái)禁用。

將projects/myapp下的項(xiàng)目文件復(fù)制到/data/下
#cp -r projects/myapp/ /data/myapp_v1
#cd /data/
#ln -s myapp_v1/ test

在Tomcat的主配置文件server.xml中添加如下內(nèi)容
<Host name="www.hechunping.com"  appBase="/data/webapps"                          unpackWARs="true" autoDeploy="true">
  <Context path="/test" docBase="/data/test" reloadable="false" />
</Host>

訪問(wèn)測(cè)試http://www.hechunping.com:8080/test/

Tomcat的安裝和基本使用方法

注意:這里特別使用了軟鏈接,原因就是以后版本升級(jí),需要將軟鏈接指向myapp_v2,重啟Tomcat。如果新版上線后,出現(xiàn)問(wèn)題,重新修改軟鏈接到上一個(gè)版本的目錄,并重啟,就可以實(shí)現(xiàn)回滾。

到此,相信大家對(duì)“Tomcat的安裝和基本使用方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

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

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

AI