centos 7.6 安装 tomcat 介绍、安装、配置、使用

1、tomcat介绍

官方介绍文档 https://tomcat.apache.org/tomcat-10.1-doc/introduction.html

Apache Tomcat(通常简称为Tomcat)是一个开源的Java Servlet容器,属于Apache软件基金会的一个项目。它提供了一个实现了Java Servlet和JavaServer Pages(JSP)等Java EE规范的运行环境,使得Java应用程序可以在Web服务器上运行。

以下是关于Tomcat的一些主要特点和信息:

Servlet容器: Tomcat主要用于执行Java Servlet,这是一种服务器端的Java程序,用于处理客户端请求并生成动态的Web内容。Servlets是Java EE平台的一部分,它们通过Tomcat提供的环境来运行。

JSP支持: Tomcat支持JavaServer Pages(JSP),这是一种在Java代码中嵌入HTML的技术,使得开发者可以更轻松地创建动态Web页面。Tomcat负责解释和执行JSP页面。

开源: Tomcat是一个开源项目,遵循Apache License。这意味着它是免费可用的,并且用户可以自由地查看、修改和分发源代码。

轻量级: Tomcat被设计为一个轻量级的Servlet容器,其核心重点是提供简洁、高效的Java Web应用程序运行环境。它注重性能和资源效率。

模块化: Tomcat是模块化的,允许用户根据需要添加或删除特定的功能。用户可以根据应用程序的需求选择性地启用或禁用不同的组件。

跨平台: Tomcat是跨平台的,可以在各种操作系统上运行,包括Windows、Linux、macOS等。

易于部署: Tomcat提供了简单而有效的部署机制,可以通过将Web应用程序的WAR(Web Application Archive)文件放置在指定目录来轻松地部署应用程序。

管理工具: Tomcat包含了用于管理和监视服务器的一些实用工具。这包括Web应用程序管理、连接池管理、日志查看等。

可扩展性: Tomcat是可扩展的,支持各种扩展和插件。用户可以通过添加第三方组件或插件来扩展Tomcat的功能。

总体而言,Tomcat是一个广泛用于托管Java Web应用程序的开源Servlet容器,它的简单性、轻量级和可扩展性使其成为Java开发者首选的Web服务器之一。

2、tomcat安装

官方安装文档 https://tomcat.apache.org/tomcat-10.1-doc/setup.html

2.1、下载tomcat

根据需要选取tomcat版本

在这里插入图片描述

本例下载tomcat 9.0.84
下载链接: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz

文件名:apache-tomcat-9.0.84.tar.gz
sha512:85a42ab5e7e4cb1923888e96a78a0f277a870d06e76147a95457878c124001c9a317eade4ad69c249a460ffe2cbefe894022b84389cdf33038bc456e3699c8e3

2.2、设置环境变量

使用centos 7.6 安装apache-tomcat-9.0.84.tar.gz
把apache-tomcat-9.0.84.tar.gz 上传到 /root/package/tomcat 目录下

cd /root/package/tomcat
tar -xzvf apache-tomcat-9.0.84.tar.gz -C /usr/local
cd /usr/local
ln -s apache-tomcat-9.0.84/ tomcat

设置java环境变量
在/etc/profile最后面添加2行(/usr/local/jdk1.8.0_202 是JDK根目录)

JAVA_HOME=/usr/local/jdk1.8.0_202
PATH=$JAVA_HOME/bin:$PATH

设置CATALINA_HOME环境变量
在/etc/profile最后面添加一行

CATALINA_HOME=/usr/local/tomcat

在这里插入图片描述

source /etc/profile

2.3、编译安装jsvc binary (linux上tomcat运行的必要库)

编译安装jsvc binary (linux上tomcat运行的必要库)

cd $CATALINA_HOME/bin
tar xvfz commons-daemon-native.tar.gz
cd commons-daemon-1.3.4-native-src/unix
./configure
make
cp jsvc ../..
cd ../..

编译安装jsvc binary的命令记录

[root@centos bin]# cd $CATALINA_HOME/bin
[root@centos bin]# 
[root@centos bin]# tar xvfz commons-daemon-native.tar.gz
commons-daemon-1.3.4-native-src/LICENSE.txt
commons-daemon-1.3.4-native-src/NOTICE.txt
commons-daemon-1.3.4-native-src/RELEASE-NOTES.txt
commons-daemon-1.3.4-native-src/unix/
commons-daemon-1.3.4-native-src/unix/man/
commons-daemon-1.3.4-native-src/unix/native/
commons-daemon-1.3.4-native-src/unix/support/
commons-daemon-1.3.4-native-src/unix/INSTALL.txt
commons-daemon-1.3.4-native-src/unix/Makedefs.in
commons-daemon-1.3.4-native-src/unix/Makefile.in
commons-daemon-1.3.4-native-src/unix/configure.in
commons-daemon-1.3.4-native-src/unix/man/README.txt
commons-daemon-1.3.4-native-src/unix/man/jsvc.1.xml
commons-daemon-1.3.4-native-src/unix/native/.indent.pro
commons-daemon-1.3.4-native-src/unix/native/Makefile.in
commons-daemon-1.3.4-native-src/unix/native/arguments.c
commons-daemon-1.3.4-native-src/unix/native/arguments.h
commons-daemon-1.3.4-native-src/unix/native/debug.c
commons-daemon-1.3.4-native-src/unix/native/debug.h
commons-daemon-1.3.4-native-src/unix/native/dso-dlfcn.c
commons-daemon-1.3.4-native-src/unix/native/dso-dyld.c
commons-daemon-1.3.4-native-src/unix/native/dso.h
commons-daemon-1.3.4-native-src/unix/native/help.c
commons-daemon-1.3.4-native-src/unix/native/help.h
commons-daemon-1.3.4-native-src/unix/native/home.c
commons-daemon-1.3.4-native-src/unix/native/home.h
commons-daemon-1.3.4-native-src/unix/native/java.c
commons-daemon-1.3.4-native-src/unix/native/java.h
commons-daemon-1.3.4-native-src/unix/native/jsvc-unix.c
commons-daemon-1.3.4-native-src/unix/native/jsvc.h
commons-daemon-1.3.4-native-src/unix/native/location.c
commons-daemon-1.3.4-native-src/unix/native/location.h
commons-daemon-1.3.4-native-src/unix/native/locks.c
commons-daemon-1.3.4-native-src/unix/native/locks.h
commons-daemon-1.3.4-native-src/unix/native/replace.c
commons-daemon-1.3.4-native-src/unix/native/replace.h
commons-daemon-1.3.4-native-src/unix/native/signals.c
commons-daemon-1.3.4-native-src/unix/native/signals.h
commons-daemon-1.3.4-native-src/unix/native/version.h
commons-daemon-1.3.4-native-src/unix/support/apfunctions.m4
commons-daemon-1.3.4-native-src/unix/support/apjava.m4
commons-daemon-1.3.4-native-src/unix/support/apsupport.m4
commons-daemon-1.3.4-native-src/unix/support/config.guess
commons-daemon-1.3.4-native-src/unix/support/config.sub
commons-daemon-1.3.4-native-src/unix/configure
commons-daemon-1.3.4-native-src/unix/man/fetch.sh
commons-daemon-1.3.4-native-src/unix/support/buildconf.sh
commons-daemon-1.3.4-native-src/unix/support/install.sh
commons-daemon-1.3.4-native-src/windows/
commons-daemon-1.3.4-native-src/windows/apps/
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/
commons-daemon-1.3.4-native-src/windows/include/
commons-daemon-1.3.4-native-src/windows/resources/
commons-daemon-1.3.4-native-src/windows/src/
commons-daemon-1.3.4-native-src/windows/xdocs/
commons-daemon-1.3.4-native-src/windows/README.txt
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/Makefile
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.c
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.h
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.manifest
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/Makefile
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.c
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.h
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.manifest
commons-daemon-1.3.4-native-src/windows/include/Makefile.inc
commons-daemon-1.3.4-native-src/windows/include/apxwin.h
commons-daemon-1.3.4-native-src/windows/include/cmdline.h
commons-daemon-1.3.4-native-src/windows/include/console.h
commons-daemon-1.3.4-native-src/windows/include/gui.h
commons-daemon-1.3.4-native-src/windows/include/handles.h
commons-daemon-1.3.4-native-src/windows/include/javajni.h
commons-daemon-1.3.4-native-src/windows/include/log.h
commons-daemon-1.3.4-native-src/windows/include/registry.h
commons-daemon-1.3.4-native-src/windows/include/rprocess.h
commons-daemon-1.3.4-native-src/windows/include/security.h
commons-daemon-1.3.4-native-src/windows/include/service.h
commons-daemon-1.3.4-native-src/windows/resources/license.rtf
commons-daemon-1.3.4-native-src/windows/src/cmdline.c
commons-daemon-1.3.4-native-src/windows/src/console.c
commons-daemon-1.3.4-native-src/windows/src/gui.c
commons-daemon-1.3.4-native-src/windows/src/handles.c
commons-daemon-1.3.4-native-src/windows/src/javajni.c
commons-daemon-1.3.4-native-src/windows/src/log.c
commons-daemon-1.3.4-native-src/windows/src/mclib.c
commons-daemon-1.3.4-native-src/windows/src/mclib.h
commons-daemon-1.3.4-native-src/windows/src/private.h
commons-daemon-1.3.4-native-src/windows/src/registry.c
commons-daemon-1.3.4-native-src/windows/src/rprocess.c
commons-daemon-1.3.4-native-src/windows/src/security.c
commons-daemon-1.3.4-native-src/windows/src/service.c
commons-daemon-1.3.4-native-src/windows/src/utils.c
commons-daemon-1.3.4-native-src/windows/xdocs/index.xml
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.rc
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.rc
commons-daemon-1.3.4-native-src/windows/resources/commons.bmp
commons-daemon-1.3.4-native-src/windows/resources/procrunr.ico
commons-daemon-1.3.4-native-src/windows/resources/procruns.ico
commons-daemon-1.3.4-native-src/windows/resources/procrunw.ico
commons-daemon-1.3.4-native-src/windows/resources/susers.bmp
[root@centos bin]# ls -l
total 908
-rw-r-----. 1 root root  35467 Dec  8 03:27 bootstrap.jar
-rw-r-----. 1 root root  16856 Dec  8 03:27 catalina.bat
-rwxr-x---. 1 root root  25323 Dec  8 03:27 catalina.sh
-rw-r-----. 1 root root   1664 Dec  8 03:27 catalina-tasks.xml
-rw-r-----. 1 root root   2123 Dec  8 03:27 ciphers.bat
-rwxr-x---. 1 root root   1997 Dec  8 03:27 ciphers.sh
drwxr-xr-x. 4 root root   4096 Jan  7 23:03 commons-daemon-1.3.4-native-src
-rw-r-----. 1 root root  25661 Dec  8 03:27 commons-daemon.jar
-rw-r-----. 1 root root 214214 Dec  8 03:27 commons-daemon-native.tar.gz
-rw-r-----. 1 root root   2040 Dec  8 03:27 configtest.bat
-rwxr-x---. 1 root root   1922 Dec  8 03:27 configtest.sh
-rwxr-x---. 1 root root   9100 Dec  8 03:27 daemon.sh
-rw-r-----. 1 root root   2091 Dec  8 03:27 digest.bat
-rwxr-x---. 1 root root   1965 Dec  8 03:27 digest.sh
-rw-r-----. 1 root root   3606 Dec  8 03:27 makebase.bat
-rwxr-x---. 1 root root   3382 Dec  8 03:27 makebase.sh
-rw-r-----. 1 root root   3814 Dec  8 03:27 setclasspath.bat
-rwxr-x---. 1 root root   4317 Dec  8 03:27 setclasspath.sh
-rw-r-----. 1 root root   2020 Dec  8 03:27 shutdown.bat
-rwxr-x---. 1 root root   1902 Dec  8 03:27 shutdown.sh
-rw-r-----. 1 root root   2022 Dec  8 03:27 startup.bat
-rwxr-x---. 1 root root   1904 Dec  8 03:27 startup.sh
-rw-r-----. 1 root root  49609 Dec  8 03:27 tomcat-juli.jar
-rw-r-----. 1 root root 438209 Dec  8 03:27 tomcat-native.tar.gz
-rw-r-----. 1 root root   4576 Dec  8 03:27 tool-wrapper.bat
-rwxr-x---. 1 root root   5540 Dec  8 03:27 tool-wrapper.sh
-rw-r-----. 1 root root   2026 Dec  8 03:27 version.bat
-rwxr-x---. 1 root root   1908 Dec  8 03:27 version.sh
[root@centos bin]# cd commons-daemon-1.3.4-native-src
[root@centos commons-daemon-1.3.4-native-src]# ls -l
total 28
-rw-rw-r--. 1 root root 11358 Apr 23  2023 LICENSE.txt
-rw-rw-r--. 1 root root   175 Apr 23  2023 NOTICE.txt
-rw-rw-r--. 1 root root  1749 Apr 23  2023 RELEASE-NOTES.txt
drwxrwxr-x. 5 root root  4096 Apr 23  2023 unix
drwxrwxr-x. 7 root root  4096 Apr 23  2023 windows
[root@centos commons-daemon-1.3.4-native-src]# cd unix/
[root@centos unix]# ls -l
total 180
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# ./configure 
*** Current host ***
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking cached host system type... ok
*** C-Language compilation tools ***
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... -std=gnu11
checking for ranlib... ranlib
checking for strip... strip
*** Host support ***
checking C flags dependant on host system type... ok
*** Java compilation tools ***
checking for JDK location... /usr/local/jdk1.8.0_202
checking for JDK os include directory...  linux
gcc flags added
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for sys/capability.h... no
configure: WARNING: cannot find headers for libcap
*** Writing output files ***
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makedefs
config.status: creating native/Makefile
*** All done ***
Now you can issue "make"
[root@centos unix]# ls -l
total 240
-rw-r--r--. 1 root root  21923 Jan  7 23:04 config.log
-rwxr-xr-x. 1 root root     58 Jan  7 23:04 config.nice
-rwxr-xr-x. 1 root root  24479 Jan  7 23:04 config.status
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rw-r--r--. 1 root root   1209 Jan  7 23:04 Makedefs
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-r--r--. 1 root root   1110 Jan  7 23:04 Makefile
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:04 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# make
(cd native; make  all)
make[1]: Entering directory `/usr/local/apache-tomcat-9.0.84/bin/commons-daemon-1.3.4-native-src/unix/native'
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c jsvc-unix.c -o jsvc-unix.o
jsvc-unix.c: In function ‘run_controller’:
jsvc-unix.c:1311:20: warning: assignment from incompatible pointer type [enabled by default]
     act.sa_handler = controller;
                    ^
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c arguments.c -o arguments.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c debug.c -o debug.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c dso-dlfcn.c -o dso-dlfcn.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c dso-dyld.c -o dso-dyld.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c help.c -o help.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c home.c -o home.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c java.c -o java.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c location.c -o location.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c replace.c -o replace.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c locks.c -o locks.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c signals.c -o signals.o
ar cr libservice.a arguments.o debug.o dso-dlfcn.o dso-dyld.o help.o home.o java.o location.o replace.o locks.o signals.o
ranlib libservice.a
gcc -std=gnu11   jsvc-unix.o libservice.a -ldl -lpthread -o ../jsvc
make[1]: Leaving directory `/usr/local/apache-tomcat-9.0.84/bin/commons-daemon-1.3.4-native-src/unix/native'
[root@centos unix]# ls -l
total 416
-rw-r--r--. 1 root root  21923 Jan  7 23:04 config.log
-rwxr-xr-x. 1 root root     58 Jan  7 23:04 config.nice
-rwxr-xr-x. 1 root root  24479 Jan  7 23:04 config.status
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
-rw-r--r--. 1 root root   1209 Jan  7 23:04 Makedefs
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-r--r--. 1 root root   1110 Jan  7 23:04 Makefile
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:05 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# ls -l jsvc 
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
[root@centos unix]# cp jsvc ../..
[root@centos unix]# cd ../..
[root@centos bin]# ls -l
total 1084
-rw-r-----. 1 root root  35467 Dec  8 03:27 bootstrap.jar
-rw-r-----. 1 root root  16856 Dec  8 03:27 catalina.bat
-rwxr-x---. 1 root root  25323 Dec  8 03:27 catalina.sh
-rw-r-----. 1 root root   1664 Dec  8 03:27 catalina-tasks.xml
-rw-r-----. 1 root root   2123 Dec  8 03:27 ciphers.bat
-rwxr-x---. 1 root root   1997 Dec  8 03:27 ciphers.sh
drwxr-xr-x. 4 root root   4096 Jan  7 23:03 commons-daemon-1.3.4-native-src
-rw-r-----. 1 root root  25661 Dec  8 03:27 commons-daemon.jar
-rw-r-----. 1 root root 214214 Dec  8 03:27 commons-daemon-native.tar.gz
-rw-r-----. 1 root root   2040 Dec  8 03:27 configtest.bat
-rwxr-x---. 1 root root   1922 Dec  8 03:27 configtest.sh
-rwxr-x---. 1 root root   9100 Dec  8 03:27 daemon.sh
-rw-r-----. 1 root root   2091 Dec  8 03:27 digest.bat
-rwxr-x---. 1 root root   1965 Dec  8 03:27 digest.sh
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
-rw-r-----. 1 root root   3606 Dec  8 03:27 makebase.bat
-rwxr-x---. 1 root root   3382 Dec  8 03:27 makebase.sh
-rw-r-----. 1 root root   3814 Dec  8 03:27 setclasspath.bat
-rwxr-x---. 1 root root   4317 Dec  8 03:27 setclasspath.sh
-rw-r-----. 1 root root   2020 Dec  8 03:27 shutdown.bat
-rwxr-x---. 1 root root   1902 Dec  8 03:27 shutdown.sh
-rw-r-----. 1 root root   2022 Dec  8 03:27 startup.bat
-rwxr-x---. 1 root root   1904 Dec  8 03:27 startup.sh
-rw-r-----. 1 root root  49609 Dec  8 03:27 tomcat-juli.jar
-rw-r-----. 1 root root 438209 Dec  8 03:27 tomcat-native.tar.gz
-rw-r-----. 1 root root   4576 Dec  8 03:27 tool-wrapper.bat
-rwxr-x---. 1 root root   5540 Dec  8 03:27 tool-wrapper.sh
-rw-r-----. 1 root root   2026 Dec  8 03:27 version.bat
-rwxr-x---. 1 root root   1908 Dec  8 03:27 version.sh
[root@centos bin]# 

2.4、运行tomcat

编辑配置文件

cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak
vi /usr/local/tomcat/conf/server.xml

查找 Connector port
更改前

在这里插入图片描述

更改后

在这里插入图片描述

配置tomcat开机自启动

vi /etc/init.d/tomcat

添加如下内容

#!/bin/bash
#
# Startup script for Tomcat
#
# chkconfig: 345 82 20
# description: Tomcat is a servlet runner

JAVA_HOME=/usr/local/jdk1.8.0_202
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=/usr/local/tomcat
XMFILE=$CATALINA_HOME/conf/server.xml
JAVA_OPTS="-server -Xms3g -Xmx3g -Xmn1g -Xss256k -XX:+UseParallelGC"
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
export JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS

# See how we were called.
case "$1" in
  start)
    cd $CATALINA_HOME
    ./bin/startup.sh -config $XMFILE
    ;;
  stop)
    cd $CATALINA_HOME
    ./bin/shutdown.sh -config $XMFILE
    ;;
  restart)
    $0 stop
    sleep 3
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0
chmod +x /etc/init.d/tomcat
chkconfig --add tomcat

启动tomcat

/etc/init.d/tomcat start

访问 http://tomcatServer-ip:8080 出现如下页面即为Tomcat安装成功

在这里插入图片描述

3、tomcat安装目录下的文件目录解释

tomcat根目录如下

在这里插入图片描述

  • bin
    /bin - Startup, shutdown, and other scripts. The *.sh files (for Unix systems) are functional duplicates of the *.bat files (for Windows systems). Since the Win32 command-line lacks certain functionality, there are some additional files in here.
  • conf
    /conf - Configuration files and related DTDs. The most important file in here is server.xml. It is the main configuration file for the container.
  • lib
    放置.jar
  • logs
    /logs - Log files are here by default.
[root@centos tomcat]# ls -lh logs/
total 64K
-rw-r-----. 1 root root 1.7K Jan  7 23:56 catalina.2024-01-07.log
-rw-r-----. 1 root root  21K Jan  8 21:28 catalina.2024-01-08.log
-rw-r-----. 1 root root  22K Jan  8 21:28 catalina.out
-rw-r-----. 1 root root    0 Jan  7 23:56 host-manager.2024-01-07.log
-rw-r-----. 1 root root    0 Jan  8 00:00 host-manager.2024-01-08.log
-rw-r-----. 1 root root    0 Jan  7 23:56 localhost.2024-01-07.log
-rw-r-----. 1 root root 1.7K Jan  8 21:28 localhost.2024-01-08.log
-rw-r-----. 1 root root 1.4K Jan  8 21:41 localhost_access_log.2024-01-08.txt
-rw-r-----. 1 root root    0 Jan  7 23:56 manager.2024-01-07.log
-rw-r-----. 1 root root    0 Jan  8 00:00 manager.2024-01-08.log

其中localhost_access_log.2024-01-08.txt 是访问日志 形如
配置访问日志: https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Access_Logging

在这里插入图片描述

在tomcat/conf/server.xml 中这个元素配置访问日志的形式

在这里插入图片描述

catalina.out
catalina.out是tomcat的标准输出(stdout)和标准错误(stderr),这是在tomcat的启动脚本catalina.sh里指定的,如果没有修改的话stdout和stderr会重定向到这里。

[root@centos tomcat]# grep -C5 CATALINA_OUT bin/catalina.sh 
#
#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
#                   of a Catalina installation.  If not present, resolves to
#                   the same directory that CATALINA_HOME points to.
#
#   CATALINA_OUT    (Optional) Full path to a file where stdout and stderr
#                   will be redirected.
#                   Default is $CATALINA_BASE/logs/catalina.out
#
#   CATALINA_OUT_CMD (Optional) Command which will be executed and receive
#                   as its stdin the stdout and stderr from the Tomcat java
#                   process. If CATALINA_OUT_CMD is set, the value of
#                   CATALINA_OUT will be used as a named pipe.
#                   No default.
#                   Example (all one line)
#                   CATALINA_OUT_CMD="/usr/bin/rotatelogs -f $CATALINA_BASE/logs/catalina.out.%Y-%m-%d.log 86400"
#
#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in JAVA_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
--
if [ ! -z "$CLASSPATH" ] ; then
  CLASSPATH="$CLASSPATH":
fi
CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar

if [ -z "$CATALINA_OUT" ] ; then
  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

if [ -z "$CATALINA_TMPDIR" ] ; then
  # Define the java.io.tmpdir to use for Catalina
  CATALINA_TMPDIR="$CATALINA_BASE"/temp
--
      fi
    fi
  fi

  shift
  if [ -z "$CATALINA_OUT_CMD" ] ; then
    touch "$CATALINA_OUT"
  else
    if [ ! -e "$CATALINA_OUT" ]; then
      if ! mkfifo "$CATALINA_OUT"; then
        echo "cannot create named pipe $CATALINA_OUT. Start aborted."
        exit 1
      fi
    elif [ ! -p "$CATALINA_OUT" ]; then
      echo "$CATALINA_OUT exists and is not a named pipe. Start aborted."
      exit 1
    fi
    $CATALINA_OUT_CMD <"$CATALINA_OUT" &
  fi
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
--
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

  else
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

  fi

  if [ ! -z "$CATALINA_PID" ]; then
    echo $! > "$CATALINA_PID"
[root@centos tomcat]# 
[root@centos tomcat]# 

catalina.xxxx-xx-xx.log
可以理解所有的catalina.xxxx-xx-xx.log 加起来就是catalina.out
从文件大小可以看出来 1650+20614=22264

在这里插入图片描述

  • temp
    The temp directory used by the JVM for temporary files.
  • webapps
    This is where your webapps go.
  • work
    The work directory that contains temporary working directories for the deployed web applications.

4、tomcat初探

4.1、tomcat配置SSL

参考链接: https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html
创建放置keystore文件的目录

mkdir $CATALINA_HOME/conf/tomcatSSLkeystore

生成SSL需要的tomcat.keystore文件

$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore $CATALINA_HOME/conf/tomcatSSLkeystore/keystore

首先会提示输入keystore文件的密码 默认是changeit

在这里插入图片描述

接下来,系统将提示您输入关于该证书的一般信息,例如公司、联系人姓名等。此信息将显示给试图访问应用程序中的安全页面的用户,因此请确保此处提供的信息与他们所期望的相符。

在这里插入图片描述

最后,将提示您输入密钥密码,这是专门用于此证书的密码(与存储在同一密钥存储库文件中的任何其他证书相反)。keytool提示符将告诉您,按下ENTER键将自动使用与密钥存储库相同的密钥密码。您可以自由地使用相同的密码或选择自定义密码。如果选择与密钥存储库密码不同的密码,还需要在server.xm中指定自定义密码.

在这里插入图片描述

查看生成的keystore文件 $CATALINA_HOME/conf/tomcatSSLkeystore/keystore

在这里插入图片描述

使用上述命令生成的keystore文件是JKS专有格式的,我们使用如下命令转换成更常用的PKCS#12格式的keystore文件

$JAVA_HOME/bin/keytool -importkeystore -srckeystore /usr/local/tomcat/conf/tomcatSSLkeystore/keystore -destkeystore /usr/local/tomcat/conf/tomcatSSLkeystore/keystore -deststoretype pkcs12

在这里插入图片描述

查看转换后的文件 以及转化前备份的原keystore文件keystore.old

在这里插入图片描述

至此SSL证书已经准备完成。下面编辑tomcat的ser.xml

vi $CATALINA_HOME/conf/server.xml

查找Connector port=“8443”

编辑下图红框部分

在这里插入图片描述

编辑前

<!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

编辑后

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           maxParameterCount="1000"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/usr/local/tomcat/conf/tomcatSSLkeystore/keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>              

在这里插入图片描述

最后重启tomcat

此处仅记录下tomcat重启日志

10-Jan-2024 00:09:30.198 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.84
10-Jan-2024 00:09:30.201 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Dec 7 2023 19:27:40 UTC
10-Jan-2024 00:09:30.201 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.84.0
10-Jan-2024 00:09:30.202 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
10-Jan-2024 00:09:30.202 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-957.el7.x86_64
10-Jan-2024 00:09:30.205 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
10-Jan-2024 00:09:30.206 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/jdk1.8.0_202/jre
10-Jan-2024 00:09:30.207 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_202-b08
10-Jan-2024 00:09:30.207 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
10-Jan-2024 00:09:30.207 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/apache-tomcat-9.0.84
10-Jan-2024 00:09:30.208 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/apache-tomcat-9.0.84
10-Jan-2024 00:09:30.208 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
10-Jan-2024 00:09:30.208 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
10-Jan-2024 00:09:30.209 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms3g
10-Jan-2024 00:09:30.210 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx3g
10-Jan-2024 00:09:30.210 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmn1g
10-Jan-2024 00:09:30.210 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xss256k
10-Jan-2024 00:09:30.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseParallelGC
10-Jan-2024 00:09:30.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
10-Jan-2024 00:09:30.211 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
10-Jan-2024 00:09:30.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
10-Jan-2024 00:09:30.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
10-Jan-2024 00:09:30.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
10-Jan-2024 00:09:30.212 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
10-Jan-2024 00:09:30.213 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
10-Jan-2024 00:09:30.215 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
10-Jan-2024 00:09:30.534 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-0.0.0.0-8080"]
10-Jan-2024 00:09:30.555 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-jsse-nio-8443"]
10-Jan-2024 00:09:30.915 INFO [main] org.apache.tomcat.util.net.AbstractEndpoint.logCertificate Connector [https-jsse-nio-8443], TLS virtual host [_default_], certificate type [UNDEFINED] configured from keystore [/usr/local/tomcat/conf/tomcatSSLkeystore/keystore] using alias [tomcat] with trust store [null]
10-Jan-2024 00:09:30.919 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [900] milliseconds
10-Jan-2024 00:09:30.944 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
10-Jan-2024 00:09:30.944 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.84]
10-Jan-2024 00:09:30.953 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.84/webapps/manager]
10-Jan-2024 00:09:31.188 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.84/webapps/manager] has finished in [234] ms
10-Jan-2024 00:09:31.188 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.84/webapps/ROOT]
10-Jan-2024 00:09:31.203 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.84/webapps/ROOT] has finished in [15] ms
10-Jan-2024 00:09:31.204 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.84/webapps/docs]
10-Jan-2024 00:09:31.220 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.84/webapps/docs] has finished in [17] ms
10-Jan-2024 00:09:31.221 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.84/webapps/examples]
10-Jan-2024 00:09:31.417 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.84/webapps/examples] has finished in [197] ms
10-Jan-2024 00:09:31.417 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.84/webapps/host-manager]
10-Jan-2024 00:09:31.437 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.84/webapps/host-manager] has finished in [20] ms
10-Jan-2024 00:09:31.442 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-0.0.0.0-8080"]
10-Jan-2024 00:09:31.456 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-jsse-nio-8443"]
10-Jan-2024 00:09:31.462 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [542] milliseconds

重启tomcat后 查看8443端口 8080端口 都存在

在这里插入图片描述

验证SSL配置成功,浏览器访问 https://tomcatServer-ip:8443 出现如下页面即为SSL配置成功

在这里插入图片描述

此错误为证书不受浏览器信任,这是正常的,因为这是自签发的证书。点击继续前往即可。

在这里插入图片描述

出现如下界面,代表tomcat SSL配置成功。

在这里插入图片描述

访问 http://tomcatServer-ip:8080

在这里插入图片描述

配置http自动重定向到https

编辑$CATALINA_HOME/conf/web.xml

vi $CATALINA_HOME/conf/web.xml

在最后面添加如下内容

<!-- ===================== http auto redircet to https =================== -->
    <security-constraint>
         <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>
       </web-resource-collection>
       <user-data-constraint>
              <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>

更改前

在这里插入图片描述

更改后

在这里插入图片描述

重启tomcat使得配置生效

/etc/init.d/tomcat restart

重启tomcat成功后,访问http://tomcatServer-ip:8080 会自动转到 https://tomcatServer-ip:8443

效果展示

在这里插入图片描述

4.2、访问tomcat默认的web应用

tomcat安装完成后,默认应用如下 一共5个 分别是docx examples host-manager manager ROOT

ls -l $CATALINA_HOME/webapps

在这里插入图片描述

4.2.1、manager应用

此章节涉及到tomcat的manager应用配置,相关内容可以参考官方配置文档 链接: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html

manager应用的作用是什么?
在许多生产环境中,无需关闭和重新启动整个容器,就可以部署新的web应用程序或取消部署现有的应用程序,这是非常有用的。此外,您可以请求一个现有的应用程序重新加载它自己,即使您没有在Tomcat服务器配置文件中声明它是可重新加载的(reloadable属性)。

为了支持这些功能,Tomcat包含了一个web应用程序(默认安装在上下文路径/manager上),它支持以下功能:

  1. 从一个WAR文件的上传内容部署一个新的web应用程序。
  2. 从服务器文件系统在指定的上下文路径上部署新的web应用程序。
  3. 列出当前部署的web应用程序,以及这些web应用程序当前活动的会话。
  4. 重新加载现有的web应用程序,以反映/ web - inf /classes或/ web - inf /lib中内容的变化。
  5. 列出操作系统和JVM的属性值。
  6. 列出可用的全局JNDI资源,用于准备嵌套在部署描述中的元素的部署工具。
  7. 启动已停止的应用程序(从而使其再次可用)。
  8. 停止现有应用程序(使其不可用),但不要取消部署。
  9. 取消部署已部署的web应用程序并删除其文档基目录(除非它是从文件系统部署的)。

有三种方法可以使用Manager web应用程序。

  1. 作为具有用户界面的应用程序,您可以在浏览器中使用。下面是一个URL示例,您可以将localhost替换为您的网站主机名:http://localhost:8080/manager/html。
  2. 仅使用HTTP请求的最小版本,适合由系统管理员设置的脚本使用。命令作为请求URI的一部分给出,响应采用简单文本的形式,可以很容易地解析和处理。有关更多信息,请参阅支持的管理器命令。
  3. 为Ant(1.4或更高版本)构建工具提供了一组方便的任务定义。有关更多信息,请参阅使用Ant执行管理器命令。

我们使用第一种方式访问manager应用,浏览器输入 https://tomcatServer-ip:8443/manager
报错如下 这是因为manager的context.xml配置文件中 配置了允许访问的ip为127.x.x.x。
参考链接: https://stackoverflow.com/questions/36703856/access-tomcat-manager-app-from-different-host

在这里插入图片描述

查看manager的context.xml配置文件 这个正则表达式代表了127.x.x.x

vi $CATALINA_HOMEwebapps/manager/META-INF/context.xml

在这里插入图片描述

第一种解决方法是
修改manager的context.xml配置文件

修改allow=“127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1” 改为allow=".*"表示允许所有地址访问

vi $CATALINA_HOMEwebapps/manager/META-INF/context.xml

更改前

在这里插入图片描述

更改后

在这里插入图片描述

至此配置允许访问地址完成。
然后再次访问https://tomcatServer-ip:8443/manager
提示输入用户名密码

在这里插入图片描述

这个用户名密码默认没有启用 在

vi $CATALINA_HOME/conf/tomcat-users.xml

文件最下面是示例配置

在这里插入图片描述

我们需要在上图红框下面指定用户名密码 admin/admin

vi $CATALINA_HOME/conf/tomcat-users.xml

添加如下内容

<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

在这里插入图片描述

然后再次访问https://tomcatServer-ip:8443/manager 输入我们配置的用户名和密码 admin/admin

在这里插入图片描述

访问成功

在这里插入图片描述

tomcat应用页面的认证方式
注意到上述访问时,提示的是Basic认证,那么tomcat应用页面的认证方式是在哪里配置的呢?
是在应用的web.xml配置文件中配置,以manager应用为例

vi $CATALINA_HOME/webapps/manager/WEB-INF/web.xml

在这里插入图片描述

至此,完成了配置访问默认应用manager。

以上是 配置访问 manager 的方法。
配置访问其他4个默认应用docx examples host-manager ROOT 的方法是一样的。

如果创建了其他虚拟主机,怎么为这个虚拟主机配置Manager应用呢?
默认Tomcat安装包括为默认虚拟主机配置的Manager应用程序实例。如果您创建了其他虚拟主机,您可能希望将Manager应用程序的实例添加到其中一个或多个主机中。在$CATALINA_BASE/conf/[engineename]/[hostname]文件夹中安装Manager .xml上下文配置文件,以便在新主机上添加一个Manager web应用程序Context实例。下面是一个例子:

<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <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>

4.2.2、host-manager应用

此章节涉及到tomcat的host-manager应用配置,相关内容可以参考官方配置文档 链接: https://tomcat.apache.org/tomcat-9.0-doc/host-manager-howto.html

编辑host-manager的context.xml配置文件

vi $CATALINA_HOMEwebapps/host-manager/META-INF/context.xml

更改前

在这里插入图片描述

更改后

在这里插入图片描述

访问https://tomcatServer-ip:8443/host-manager 输入我们配置的用户名和密码 admin/admin

在这里插入图片描述

4.2.3、docs应用

编辑docs的context.xml配置文件

vi $CATALINA_HOMEwebapps/docs/META-INF/context.xml

更改前
在这里插入图片描述
更改后

在这里插入图片描述

然后访问https://tomcatServer-ip:8443/docs 访问成功 没有提示输入用户名和密码

在这里插入图片描述

4.2.4、examples应用

编辑examples的context.xml配置文件

vi $CATALINA_HOMEwebapps/examples/META-INF/context.xml

更改前
在这里插入图片描述

更改后

在这里插入图片描述

访问https://tomcatServer-ip:8443/examples 访问成功 没有提示输入用户名和密码

在这里插入图片描述

4.3、使用tomcat 的DefaultServlet 的目录列表功能 搭建文件下载站点

参考链接 https://tomcat.apache.org/tomcat-9.0-doc/default-servlet.html
参考链接: https://stackoverflow.com/questions/5191735/is-it-possible-to-use-apache-tomcat-server-as-a-http-file-server
参考链接: https://www.moreofless.co.uk/static-content-web-pages-images-tomcat-outside-war

操作步骤
在xmlBase目录,即$CATALINA_HOME/conf/Catalina/localhost/ 目录下 新建fileDownloadSite.xml文件 这个文件名fileDownloadSite就是context PATH ,访问URL时这么访问 https://tomcatServer-ip:8443/fileDownloadSite

vi /usr/local/tomcat/conf/Catalina/localhost/fileDownloadSite.xml

添加如下内容

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context docBase="/root/package" />

在这里插入图片描述
注意:这里的docBase=“/root/package” 可以是主机上的任意绝对路径。
我的主机上有个目录是软件安装包目录,里面存放了大量的软件安装包,怎么能通过tomcat的URL访问到呢?比如/root/package目录下有JDK和TOMCAT安装包。那么就写docBase="/root/package"即可。

原理:
我们可以将Tomcat配置为从磁盘上的任何位置读取文件,并将它们提供给特定的URL。这个配置完全独立于您的应用程序配置—如果您愿意,您可以启动Tomcat,让它在不运行web应用程序的情况下从磁盘提供静态文件。
查看tomcat的context参考文档
除非Context元素是在server.xml中定义的,或者docBase不在主机的appBase下,否则不能设置该字段的值。

我们这里之所以设置docBase字段,就是docBase不在主机的appBase(appBase默认是 C A T A L I N A H O M E / w e b a p p s 目录 ) 下的这种情况。因为咱们的这个自定义 c o n t e x t 元素 CATALINA_HOME/webapps目录)下的这种情况。因为咱们的这个自定义context元素 CATALINAHOME/webapps目录)下的这种情况。因为咱们的这个自定义context元素CATALINA_HOME/conf/Catalina/localhost/fileDownloadSite.xml 不是在server.xml中定义的。

在这里插入图片描述

然后访问 https://tomcatServer-ip:8443/fileDownloadSite 报错如下

在这里插入图片描述

经分析 在tomcat的$CATALINA_HOME/conf/Catalina/localhost/ 目录下已经存在了fileDownloadSite.xml这样一个资源路径(就是context path),此问题的原因应该是tomcat服务器不愿公开一个已经存在的资源表示,不愿公开是什么意思呢?可能是配置上没有打开公开的开关。
此处涉及到一个概念:DefaultServlet
什么是tomcat的DefaultServlet呢,DefaultServlet即默认的servlet是既提供静态资源又提供目录列表(如果启用了目录列表)的servlet。
参考链接 https://tomcat.apache.org/tomcat-9.0-doc/default-servlet.html

因此需要更改DefaultServlet的配置看看能不能公开fileDownloadSite这个资源路径,即能通过URL访问到。
想要更改DefaultServlet的配置,首先需要知道在哪里配置的,然后去这个地方改配置。经查资料,DefaultServlet 在$CATALINA_BASE/conf/web.xml中全局声明。默认情况下,下面是它的声明:

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

...

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

这个配置的意思是:默认情况下,在webapp启动时加载默认servlet,禁用目录列表,关闭调试。
而搭建自己的文件下载站点需要启用目录列表功能,因此修改$CATALINA_BASE/conf/web.xml中关于DefaultServlet的目录列表 listings参数的配置。把false改成true
更改前

在这里插入图片描述

更改后

在这里插入图片描述
修改$CATALINA_BASE/conf/web.xml,不需要重启tomcat

修改后直接再次访问https://tomcatServer-ip:8443/fileDownloadSite 已经能访问了(需要清理浏览器缓存、刷新页面)

在这里插入图片描述

下载 jdk安装包

在这里插入图片描述
至此,文件下载站点搭建完成。

实际上可以通过修改修改docBase参数 使用https://tomcatServer-ip:8443/fileDownloadSite 访问到主机上的任意目录。
编辑$CATALINA_HOME/conf/Catalina/localhost/fileDownloadSite.xml 修改docBase参数为 $CATALINA_HOME:/usr/local/tomcat

<Context docBase="/usr/local/tomcat"/>

在这里插入图片描述

修改docBase后直接再次访问https://tomcatServer-ip:8443/fileDownloadSite 已经能访问了(需要清理浏览器缓存、刷新页面)

在这里插入图片描述

5、tomcat官方的配置参考文档

tomcat官方的配置参考文档: https://tomcat.apache.org/tomcat-9.0-doc/config/index.html

5.1、概述

本手册包含有关所有配置指令的参考信息,这些指令可以包含在conf/server.xml文件中,用于配置Tomcat Servlet/JSP容器的行为。它不试图描述应使用哪些配置指令来执行特定任务,请参阅主索引页上的各种“如何操作”文档。
Tomcat配置文件的格式为无模式XML;元素和属性区分大小写。支持Apache Ant风格的变量替换;名称为propname的系统属性可以使用语法${propname}在配置文件中使用。所有系统属性都可用,包括使用-D语法设置的属性、JVM自动提供的属性以及在$CATALINA_BASE/conf/CATALINA.properties文件中配置的属性。

从tomcat的server.xml配置文件 来看配置元素的层级结构。

  1. 顶层元素——<Server>是整个配置文件的根元素,而<Service>表示与引擎相关联的一组连接器。
  2. 连接器——表示向特定服务发送请求(并从该服务接收响应)的外部客户端之间的接口。
  3. 容器——表示组件,其功能是处理传入的请求,并创建相应的响应。引擎处理服务的所有请求,主机处理特定虚拟主机的所有请求,而上下文处理特定web应用程序的所有请求。
  4. 嵌套组件——表示可以嵌套在容器元素内部的元素。有些元素可以嵌套在任何Container中,而其他元素只能嵌套在Context中。
[root@centos tomcat]# cat conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 -->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!-- APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" address="0.0.0.0" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               />
    -->
    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation. The default
         SSLImplementation will depend on the presence of the APR/native
         library and the useOpenSSL attribute of the AprLifecycleListener.
         Either JSSE or OpenSSL style configuration may be used regardless of
         the SSLImplementation selected. JSSE style configuration is used below.
    -->
    <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           maxParameterCount="1000"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/usr/local/tomcat/conf/tomcatSSLkeystore/keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>
    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
         This connector uses the APR/native implementation which always uses
         OpenSSL for TLS.
         Either JSSE or OpenSSL style configuration may be used. OpenSSL style
         configuration is used below.
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true"
               maxParameterCount="1000"
               >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!--
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />
    -->

    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <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>
[root@centos tomcat]# 

对于每个元素,相应的文档遵循以下总体大纲:

  1. 引言-对该特定组件的总体描述。将有一个对应的Java接口(在org.apache.catalina包中),由一个或多个标准实现实现。
  2. 属性-此元素的合法属性集。通常,这将被细分为相应Java接口的所有实现所支持的通用属性,以及特定于实现该接口的特定Java类的标准实现属性。所需属性的名称被保留。
  3. 嵌套组件-枚举哪些嵌套组件可以合法地嵌套在此元素中。
  4. 特殊功能-描述由该接口的标准实现支持的大量特殊功能(特定于每种元素类型)的配置。

5.2、The Server Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/server.html

5.2.1、引言

一个Server元素表示整个Catalina servlet容器。因此,它必须是conf/server.xml配置文件中最外层的一个元素。它的属性代表了servlet容器的整体特征。

5.2.2、属性

5.2.2.1、
5.2.2.2、

5.2.3、嵌套组件

5.2.4、特殊功能

5.3、The Service Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/service.html

5.3.1、引言

5.3.2、属性

5.3.2.1、
5.3.2.2、

5.3.3、嵌套组件

5.3.4、特殊功能

5.4、The Service Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/service.html

5.4.1、引言

5.4.2、属性

5.4.2.1、
5.4.2.2、

5.4.3、嵌套组件

5.4.4、特殊功能

5.5、The Executor (thread pool)

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/executor.html

5.5.1、引言

5.5.2、属性

5.5.2.1、
5.5.2.2、

5.5.3、嵌套组件

5.5.4、特殊功能

5.6、The Connector Component

5.6.1、The HTTP Connector Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/http.html

5.6.1.1、引言
5.6.1.2、属性
5.6.1.2.1、
5.6.1.2.2、
5.6.1.3、嵌套组件
5.6.1.4、特殊功能

5.6.2、The HTTP2 Upgrade Protocol

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/http2.html

5.6.2.1、引言
5.6.2.2、属性
5.6.2.2.1、
5.6.2.2.2、
5.6.2.3、嵌套组件
5.6.2.4、特殊功能

5.6.3、The AJP Connector

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html

5.6.3.1、引言
5.6.3.2、属性
5.6.3.2.1、
5.6.3.2.2、
5.6.3.3、嵌套组件
5.6.3.4、特殊功能

5.7、The Container Component

5.7.1、The Context Container

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/context.html

5.7.1.1、引言
5.7.1.2、属性
5.7.1.2.1、
5.7.1.2.2、
5.7.1.3、嵌套组件
5.7.1.4、特殊功能

5.7.2、The Engine Container

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/engine.html

5.7.2.1、引言
5.7.2.2、属性
5.7.2.2.1、
5.7.2.2.2、
5.7.2.3、嵌套组件
5.7.2.4、特殊功能

5.7.3、The Host Container

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/host.html

5.7.3.1、引言
5.7.3.2、属性
5.7.3.2.1、
5.7.3.2.2、
5.7.3.3、嵌套组件
5.7.3.4、特殊功能

5.7.4、The Cluster object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster.html

5.7.4.1、引言
5.7.4.2、属性
5.7.4.2.1、
5.7.4.2.2、
5.7.4.3、嵌套组件
5.7.4.4、特殊功能

5.8、The Nested Components

5.8.1、The Cookie Processor Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cookie-processor.html

5.8.1.1、引言
5.8.1.2、属性
5.8.1.2.1、
5.8.1.2.2、
5.8.1.3、嵌套组件
5.8.1.4、特殊功能

5.8.2、The CredentialHandler Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/credentialhandler.html

5.8.2.1、引言
5.8.2.2、属性
5.8.2.2.1、
5.8.2.2.2、
5.8.2.3、嵌套组件
5.8.2.4、特殊功能

5.8.3、The GlobalNamingResources Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/globalresources.html

5.8.3.1、引言
5.8.3.2、属性
5.8.3.2.1、
5.8.3.2.2、
5.8.3.3、嵌套组件
5.8.3.4、特殊功能

5.8.4、The Jar Scanner Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/jar-scanner.html

5.8.4.1、引言
5.8.4.2、属性
5.8.4.2.1、
5.8.4.2.2、
5.8.4.3、嵌套组件
5.8.4.4、特殊功能

5.8.5、The Jar Scan Filter Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/jar-scan-filter.html

5.8.5.1、引言
5.8.5.2、属性
5.8.5.2.1、
5.8.5.2.2、
5.8.5.3、嵌套组件
5.8.5.4、特殊功能

5.8.6、The LifeCycle Listener Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/listeners.html

5.8.6.1、引言
5.8.6.2、属性
5.8.6.2.1、
5.8.6.2.2、
5.8.6.3、嵌套组件
5.8.6.4、特殊功能

5.8.7、The Loader Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/loader.html

5.8.7.1、引言
5.8.7.2、属性
5.8.7.2.1、
5.8.7.2.2、
5.8.7.3、嵌套组件
5.8.7.4、特殊功能

5.8.8、The Manager Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/manager.html

5.8.8.1、引言
5.8.8.2、属性
5.8.8.2.1、
5.8.8.2.2、
5.8.8.3、嵌套组件
5.8.8.4、特殊功能

5.8.9、The Realm Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/realm.html

5.8.9.1、引言
5.8.9.2、属性
5.8.9.2.1、
5.8.9.2.2、
5.8.9.3、嵌套组件
5.8.9.4、特殊功能

5.8.10、The Resources Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/resources.html

5.8.10.1、引言
5.8.10.2、属性
5.8.10.2.1、
5.8.10.2.2、
5.8.10.3、嵌套组件
5.8.10.4、特殊功能

5.8.11、The SessionIdGenerator Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/sessionidgenerator.html

5.8.11.1、引言
5.8.11.2、属性
5.8.11.2.1、
5.8.11.2.2、
5.8.11.3、嵌套组件
5.8.11.4、特殊功能

5.8.12、The Valve Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html

5.8.12.1、引言
5.8.12.2、属性
5.8.12.2.1、
5.8.12.2.2、
5.8.12.3、嵌套组件
5.8.12.4、特殊功能

5.9、The Cluster Elements Components

5.9.1、The Cluster object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster.html

5.9.1.1、引言
5.9.1.2、属性
5.9.1.2.1、
5.9.1.2.2、
5.9.1.3、嵌套组件
5.9.1.4、特殊功能

5.9.2、The ClusterManager object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-manager.html

5.9.2.1、引言
5.9.2.2、属性
5.9.2.2.1、
5.9.2.2.2、
5.9.2.3、嵌套组件
5.9.2.4、特殊功能

5.9.3、The Cluster Channel object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-channel.html

5.9.3.1、引言
5.9.3.2、属性
5.9.3.2.1、
5.9.3.2.2、
5.9.3.3、嵌套组件
5.9.3.4、特殊功能

5.9.4、The Cluster Membership object

链接: [https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-membership.html]https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-membership.html)

5.9.4.1、引言
5.9.4.2、属性
5.9.4.2.1、
5.9.4.2.2、
5.9.4.3、嵌套组件
5.9.4.4、特殊功能

5.9.5、The Cluster Sender object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-sender.html

5.9.5.1、引言
5.9.5.2、属性
5.9.5.2.1、
5.9.5.2.2、
5.9.5.3、嵌套组件
5.9.5.4、特殊功能

5.9.6、The Cluster Receiver object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-receiver.html

5.9.6.1、引言
5.9.6.2、属性
5.9.6.2.1、
5.9.6.2.2、
5.9.6.3、嵌套组件
5.9.6.4、特殊功能

5.9.7、The Cluster Receiver object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-interceptor.html

5.9.7.1、引言
5.9.7.2、属性
5.9.7.2.1、
5.9.7.2.2、
5.9.7.3、嵌套组件
5.9.7.4、特殊功能

5.9.8、The Cluster Valve object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-valve.html

5.9.8.1、引言
5.9.8.2、属性
5.9.8.2.1、
5.9.8.2.2、
5.9.8.3、嵌套组件
5.9.8.4、特殊功能

5.9.9、The Cluster Deployer object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-deployer.html

5.9.9.1、引言
5.9.9.2、属性
5.9.9.2.1、
5.9.9.2.2、
5.9.9.3、嵌套组件
5.9.9.4、特殊功能

5.9.10、The ClusterListener object

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-listener.html

5.9.10.1、引言
5.9.10.2、属性
5.9.10.2.1、
5.9.10.2.2、
5.9.10.3、嵌套组件
5.9.10.4、特殊功能

5.10、The web.xml Component

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/filter.html

5.10.1、引言

Tomcat提供了许多过滤器,这些过滤器可以配置为与使用$CATALINA_BASE/conf/web.xml的所有web应用程序一起使用,也可以通过在应用程序的web-INF/web.xml中配置来为单个web应用程序配置。每个过滤器如下所述。
此描述使用变量名$CATALINA_BASE来引用解析大多数相对路径所依据的基本目录。如果您没有通过设置CATALINA_BASE目录为多个实例配置Tomcat,那么$CATALINA_BASE将被设置为$CATALINA_HOME的值,即您已将Tomcat安装到的目录。

5.10.2、属性

5.10.2.1、
5.10.2.2、

5.10.3、嵌套组件

5.10.4、特殊功能

5.11、The Other Components

5.11.1、System Properties

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html

5.11.1.1、引言
5.11.1.2、属性
5.11.1.2.1、
5.11.1.2.2、
5.11.1.3、嵌套组件
5.11.1.4、特殊功能

5.11.2、JASPIC

链接: https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html

5.11.2.1、引言
5.11.2.2、属性
5.11.2.2.1、
5.11.2.2.2、
5.11.2.3、嵌套组件
5.11.2.4、特殊功能

6、使用tomcat开发自己的第一个web应用

Tomcat应用部署文档 https://tomcat.apache.org/tomcat-9.0-doc/appdev/index.html

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐