tomcat环境部署
简介:
Tomcat是一个开源的Web服务器和Servlet容器,由Apache软件基金会开发。它是运行Java Web应用程序的最受欢迎的选择之一。Tomcat用于部署基于Java的Web应用程序,提供对Java Servlet、JavaServer Pages(JSP)和Java Expression Language(EL)技术的支持。它可以作为独立服务器使用,也可以与其他Web服务器(如Apache HTTP服务器)集成。Tomcat是用Java编写的,并且与各种操作系统兼容,包括Windows、macOS和Linux。
tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。
tomcat容器(跑java代码)
Tomcat优点:
- 开源免费,可以节约成本。
- 轻量级,占用资源少,启动快速,适合小型应用。
- 支持多种操作系统,包括Windows、macOS和Linux。
- 支持多种协议,包括HTTP、HTTPS、AJP等。
- 支持多种编程语言,包括Java、Groovy、Jython等。
- 可扩展性强,支持插件式开发。
Tomcat缺点:
- 不适合大型应用,性能不如其他Web服务器。
- 配置较为复杂,需要一定的技术水平。
- 对于高并发场景,需要进行优化和调整。
Tomcat工作原理: Tomcat是基于Java的Web服务器和Servlet容器,它的工作原理是通过监听HTTP请求,将请求发送给对应的Servlet进行处理,并将处理结果返回给客户端。
Tomcat工作流程:
- 客户端发送HTTP请求到Tomcat服务器。
- Tomcat服务器接收到请求,根据请求的URL找到对应的Servlet。
- Servlet处理请求,生成响应结果。
- Tomcat服务器将响应结果返回给客户端。
实验:准备一台初始的虚拟机
主机 | ip |
---|---|
tomcat | 192.168.134.155 |
首先关闭防火墙和selinux
[root@centos ~]# systemctl disable --now firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@centos ~]# setenforce 0
[root@centos ~]# vim /etc/selinux/config
SELINUX=disabled
java环境安装
JDK(Java Development Kit)和JRE(Java Runtime Environment)是Java开发和运行环境的两个重要组成部分,它们之间有以下区别:
JDK:
JDK功能:JDK是Java开发工具包,提供了开发Java应用程序所需的工具和资源,包括编译器、调试器、开发文档、示例代码等。
面向开发者:JDK主要面向Java开发者,用于编写、编译和调试Java代码。
包含内容:JDK包含JRE的所有内容,并且还包含了用于开发Java应用程序的额外工具和库。
JRE:
JRE功能:JRE是Java运行环境,提供了Java应用程序运行所需的运行时环境和必要的库文件。
面向用户:JRE主要面向普通用户,用于执行和运行Java应用程序。
包含内容:JRE包含Java虚拟机(JVM)和Java类库,可以执行Java程序,但不包含用于开发Java应用程序的工具和资源。
JDK适用于开发者,提供了编译、调试和开发所需的工具和库。而JRE更适用于用户
#安装jdk环境
//安装yum源
[root@tomcat ~]# rm -rf /etc/yum.repos.d/*
[root@tomcat ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@tomcat ~]# yum makecache
//安装依赖包
[root@tomcat ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget vim
省略 . . .
//查看安装的版本,能够查看到版本则说明安装成功
[root@tomcat ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
拉取软件包(Apache Tomcat® - Welcome!)
此处我安装版本9
//拉取tomcat软件包
[root@centos ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
--2023-10-12 01:24:08-- https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11692853 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-9.0.80.tar.gz’
apache-tomcat-9.0.8 100%[==================>] 11.15M 113KB/s in 1m 52s
2023-10-12 01:26:02 (102 KB/s) - ‘apache-tomcat-9.0.80.tar.gz’ saved [11692853/11692853]
//查看
[root@centos ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz
//解压到/usr/local下面
[root@centos ~]# tar xf apache-tomcat-9.0.80.tar.gz -C /usr/local/
[root@centos ~]# ls /usr/local/
apache-tomcat-9.0.80 etc include lib64 sbin src
bin games lib libexec share
//设置tomcat软链接,方便后续如果更换tomcat版本后也能直接使用
[root@centos ~]# cd //usr/local/
[root@centos local]# ll
total 0
drwxr-xr-x. 9 root root 220 Oct 12 01:38 apache-tomcat-9.0.80
drwxr-xr-x. 2 root root 6 Apr 23 2020 bin
drwxr-xr-x. 2 root root 6 Apr 23 2020 etc
drwxr-xr-x. 2 root root 6 Apr 23 2020 games
drwxr-xr-x. 2 root root 6 Apr 23 2020 include
drwxr-xr-x. 2 root root 6 Apr 23 2020 lib
drwxr-xr-x. 3 root root 17 Oct 6 01:47 lib64
drwxr-xr-x. 2 root root 6 Apr 23 2020 libexec
drwxr-xr-x. 2 root root 6 Apr 23 2020 sbin
drwxr-xr-x. 5 root root 49 Oct 6 01:47 share
drwxr-xr-x. 2 root root 6 Apr 23 2020 src
[root@centos local]# ln -s apache-tomcat-9.0.80 tomcat
[root@centos local]# ll
total 0
drwxr-xr-x. 9 root root 220 Oct 12 01:38 apache-tomcat-9.0.80
drwxr-xr-x. 2 root root 6 Apr 23 2020 bin
drwxr-xr-x. 2 root root 6 Apr 23 2020 etc
drwxr-xr-x. 2 root root 6 Apr 23 2020 games
drwxr-xr-x. 2 root root 6 Apr 23 2020 include
drwxr-xr-x. 2 root root 6 Apr 23 2020 lib
drwxr-xr-x. 3 root root 17 Oct 6 01:47 lib64
drwxr-xr-x. 2 root root 6 Apr 23 2020 libexec
drwxr-xr-x. 2 root root 6 Apr 23 2020 sbin
drwxr-xr-x. 5 root root 49 Oct 6 01:47 share
drwxr-xr-x. 2 root root 6 Apr 23 2020 src
lrwxrwxrwx. 1 root root 20 Oct 12 01:38 tomcat -> apache-tomcat-9.0.80
[root@centos local]# cd tomcat/
[root@centos tomcat]#pwd
//usr/local/tomcat
[root@centos tomcat]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos tomcat]# ls bin/
bootstrap.jar configtest.sh shutdown.sh
catalina.bat daemon.sh startup.bat
catalina.sh digest.bat startup.sh
catalina-tasks.xml digest.sh tomcat-juli.jar
ciphers.bat makebase.bat tomcat-native.tar.gz
ciphers.sh makebase.sh tool-wrapper.bat
commons-daemon.jar setclasspath.bat tool-wrapper.sh
commons-daemon-native.tar.gz setclasspath.sh version.bat
configtest.bat shutdown.bat version.sh
上述的bin目录中我们能够用到的catalina.sh、shutdown.sh、version.sh、startup.sh、configtest.sh
这几个执行文件,用途分别是:
catalina.sh 能够关闭和开启服务(常用)
shutdown.sh 只能关闭服务(不是关闭主机)
startup.sh 只能开启服务
version.sh 查看tomcat版本
configtest.sh 测试配置文件是否存在错误,检查配置文件
//将tomcat的lib位置存放在/etc/ld.so.conf/d/下面,命名一个自身名字的文件,方便查找
[root@centos tomcat]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp
//指定lib库位置
[root@centos tomcat]# vim /etc/ld.so.conf.d/tomcat.conf
/usr/local/tomcat/lib //写入lib库路径,告礼包库位置
[root@centos tomcat]# ldconfig -v //读取详细信息
ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
/usr/lib64//bind9-export:
libisccfg-export.so.163 -> libisccfg-export.so.163.0.4
libisc-export.so.1104 -> libisc-export.so.1104.0.0
libirs-export.so.161 -> libirs-export.so.161.0.0
libdns-export.so.1107 -> libdns-export.so.1107.1.0
/usr/local/tomcat/lib: //能有这个路径就能找到lib库
/lib:
/lib64:
启动tomcat服务
//启动tomcat服务
[root@centos tomcat]# pwd
/usr/local/tomcat
[root@centos tomcat]# cd bin
[root@centos bin]# pwd
//usr/local/tomcat/bin
[root@centos bin]# ./catalina.sh start
Using CATALINA_BASE: //usr/local/tomcat
Using CATALINA_HOME: //usr/local/tomcat
Using CATALINA_TMPDIR: //usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: //usr/local/tomcat/bin/bootstrap.jar://usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
//此时执行这个脚本之后看进程是否启动需要看两个东西1、端口号 2、进程
//查看端口号
[root@centos bin]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
//查看tomcat进程
[root@centos bin]# ps -ef | grep tomcat
root 2363 1 21 01:40 pts/0 00:00:01 /usr/bin/java -Djava.util.logging.config.file=//usr/local/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/tomcat/bin/bootstrap.jar://usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=//usr/local/tomcat -Dcatalina.home=//usr/local/tomcat -Djava.io.tmpdir=//usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 2394 1527 0 01:40 pts/0 00:00:00 grep --color=auto tomcat
访问tomcat的web页面
在部署tomcat过程中,网页存放目录在/usr/local/tomcat/webapps中,里面可以存放我们的网页,也可以放置app软件,而我们上述所访问到的页面则来自webapp目录中的ROOT目录中的项目
[root@centos ~]# cd /usr/local/tomcat
[root@centos tomcat]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos tomcat]# cd webapps/
[root@centos webapps]# ls
docs examples host-manager manager ROOT
我们新建一个项目目录进行测试
[root@centos webapps]# mkdir test && cd test
[root@centos test]# vim index.jsp //jsp就是java语言
[root@centos test]# cat index.jsp
<html>
<head>
<title>xiaozhan</title>
</head>
<body>
<%
out.println("Hellow World"); #表示打印Hellow World
%>
</body>
</html>
访问:
实验:
//停止tomcat
[root@centos ~]# cd /usr/local/tomcat/
[root@centos tomcat]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos tomcat]# ls bin/
bootstrap.jar configtest.sh shutdown.sh
catalina.bat daemon.sh startup.bat
catalina.sh digest.bat startup.sh
catalina-tasks.xml digest.sh tomcat-juli.jar
ciphers.bat makebase.bat tomcat-native.tar.gz
ciphers.sh makebase.sh tool-wrapper.bat
commons-daemon.jar setclasspath.bat tool-wrapper.sh
commons-daemon-native.tar.gz setclasspath.sh version.bat
configtest.bat shutdown.bat version.sh
//将服务停止
[root@centos tomcat]# ./bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
//查看端口号和进程是否还存在
[root@centos tomcat]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@centos tomcat]# ps -ef | grep tomcat
root 2528 2465 0 02:19 pts/1 00:00:00 grep --color=auto tomcat
如果出现端口号没有了,进程还在就用kill 9 强制杀死
//运行catalina.sh只有两种1、启动start 2、停止stop
如果要重启,先stop 后start
[root@centos tomcat]# ./bin/catalina.sh --help
commands:
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security(安全运行) Start in the current window with security manager
start Start Catalina in a separate window
start -security(安全启动) Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force(强制停止) Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result
version What version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined
[root@centos tomcat]# ls bin/
bootstrap.jar configtest.sh (检查配置文件) shutdown.sh(关闭tomcat)
catalina.bat daemon.sh startup.bat
catalina.sh digest.bat startup.sh(启动脚本)
catalina-tasks.xml digest.sh tomcat-juli.jar
ciphers.bat makebase.bat tomcat-native.tar.gz
ciphers.sh makebase.sh tool-wrapper.bat
commons-daemon.jar setclasspath.bat tool-wrapper.sh
commons-daemon-native.tar.gz setclasspath.sh version.bat
configtest.bat shutdown.bat version.sh
检查配置文件
//检查配置文件 如果没有报错,则说明配置文件没有问题
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name: Apache Tomcat/9.0.80
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Aug 23 2023 21:59:38 UTC
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.80.0
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Linux
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 4.18.0-305.el8.x86_64
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_312-b07
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Red Hat, Inc.
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: /usr/local/apache-tomcat-9.0.80
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: /usr/local/apache-tomcat-9.0.80
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dignore.endorsed.dirs=
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
Oct 12, 2023 2:34:40 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
Oct 12, 2023 2:34:40 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: 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]
Oct 12, 2023 2:34:41 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Oct 12, 2023 2:34:41 AM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [560] milliseconds
用shutdown.sh关闭tomcat
//测试 用shutdown.sh关闭tomcat
[root@centos tomcat]# ./bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@centos tomcat]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@centos tomcat]# ps -ef | grep tomcat
root 2602 1 14 02:39 pts/1 00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/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/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 2633 2465 0 02:39 pts/1 00:00:00 grep --color=auto tomcat
[root@centos tomcat]# ./bin/shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@centos tomcat]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
启动tomcat
//启动tomcat
[root@centos tomcat]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@centos tomcat]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@centos tomcat]# !ps //表示上一次的ps命令
ps -ef | grep tomcat
root 2679 1 10 02:42 pts/1 00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/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/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 2710 2465 0 02:42 pts/1 00:00:00 grep --color=auto tomcat
查看版本号
//查看版本号
[root@centos tomcat]# ./bin/version.sh
Using CATALINA_BASE: /usr/local/tomcat //安装到哪里去了
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/9.0.80
Server built: Aug 23 2023 21:59:38 UTC
Server number: 9.0.80.0 //版本号
OS Name: Linux
OS Version: 4.18.0-305.el8.x86_64 //内核版本号
Architecture: amd64
JVM Version: 1.8.0_312-b07 //jvm(java虚拟机)版本号
JVM Vendor: Red Hat, Inc.
配置文件
[root@centos tomcat]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos tomcat]# cd conf/
[root@centos conf]# ls
Catalina jaspic-providers.xml tomcat-users.xml
catalina.policy jaspic-providers.xsd tomcat-users.xsd
catalina.properties logging.properties web.xml
context.xml server.xml
看到官网会提示报错信息
此图片中的:
manager-gui - allows access to the HTML GUI and the status pages //允许访问两个模板server status 、manager app。
manager-script - allows access to the text interface and the status pages //允许访问命令行接口和状态页面
manager-jmx - allows access to the JMX proxy and the status pages //允许访问jmx代理和状态页面
manager-status - allows access to the status pages only //只允许访问状态页面
更改配置文件
1、按照官方文档提示修改第一处
[root@centos conf]# vim tomcat-users.xml
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/> #添加
<user username="lcy" password="luchengyang111!" roles="manager-gui"/> #添加
</tomcat-users>
//此处添加的两行必须写在<tomcat-users>这个模板之内,因为这个模板是用来定义用户的
2、按照官方文档提示修改第二处
//先找到项目里面的context.xml文件
[root@centos tomcat]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos tomcat]# ls webapps/
docs examples host-manager manager ROOT test
[root@centos tomcat]# cd webapps/manager/
[root@centos manager]# ls
css images index.jsp META-INF status.xsd WEB-INF xform.xsl
[root@centos manager]# ls META-INF/
context.xml
//允许本机ip
[root@centos manager]# vim META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.134\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> #此处\d:表示整数 +:表示至少1位 192\.168\.134\.\d+:表示允许192.168.134这个网段
登录成功
测试:
想将test停止让其访问不了
发现访问不了
如启动、卸载、重新加载等都可以在此页面直接操作
发现访问不了
[root@centos ~]# cd /usr/local/apache-tomcat-9.0.80/
[root@centos apache-tomcat-9.0.80]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@centos apache-tomcat-9.0.80]# vim conf/tomcat-users.xml
//按照官方文档提示,在此文件中再添加一个角色
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/>
<role rolename="admin-gui"/> #添加admin角色
<user username="lcy" password="luchengyang111!" roles="manager-gui,admin-gui"/>
</tomcat-users>
//将此处添加192.168.134网段的ip
[root@centos webapps]# pwd
/usr/local/apache-tomcat-9.0.80/webapps
[root@centos webapps]# vim host-manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.134\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
//更改了配置文件要将服务重启
[root@centos webapps]# ../bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.80
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.80
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.80/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-9.0.80/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.80/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@centos webapps]# !ps
ps -ef | grep tomcat
root 2866 2465 0 03:57 pts/1 00:00:00 grep --color=auto tomcat
[root@centos webapps]# ../bin/catalina.sh start
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.80
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.80
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.80/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-9.0.80/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.80/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@centos webapps]# !ps
ps -ef | grep tomcat
root 2879 1 21 03:57 pts/1 00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-9.0.80/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/apache-tomcat-9.0.80/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.80/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-9.0.80 -Dcatalina.home=/usr/local/apache-tomcat-9.0.80 -Djava.io.tmpdir=/usr/local/apache-tomcat-9.0.80/temp org.apache.catalina.startup.Bootstrap start
root 2909 2465 0 03:57 pts/1 00:00:00 grep --color=auto tomcat
[root@centos webapps]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
再次访问:
成功:
访问帮助文档
失败
授权
//添加192.168.134网段
[root@centos webapps]# vim docs/META-INF/context.xml
<Context antiResourceLocking="false" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.134\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
访问examples
//授权
[root@centos webapps]# vim examples/META-INF/context.xml
<Context>
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.134\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
其他的模块如果使用用不了,按照上图所演示的去配置就可以了
总结:
Tomcat是一个可靠、轻量级、跨平台的Java Web应用服务器,适用于许多中小型应用程序。它的工作原理基于Java Servlet和JSP规范,通过将请求分发给相应的Servlet或JSP来处理HTTP请求。虽然Tomcat在一些高级功能方面可能相对有限,但它作为一个开源项目,提供了一个可靠的基础,使得Java Web应用程序可以在其中运行。