目录
一.Tomcat介绍
Tomcat是一个开源的Web应用服务器,是Apache软件基金会的Jakarta项目中的一个核心项目。Tomcat是用Java语言开发的,所以它是一个纯Java的Web服务器。Tomcat是目前使用最广泛的Java应用服务器之一,它提供了一个运行Java Web应用的环境,可以处理HTTP请求和响应,并支持Servlet和JavaServer Pages(JSP)等Java技术。
Tomcat的特点包括:
轻量级:Tomcat的核心组件非常小巧,占用资源较少,启动速度快。
可扩展性:Tomcat支持插件机制,可以方便地添加和扩展功能。
高性能:Tomcat采用了线程池技术,可以处理大量并发请求,提供较高的性能。
安全性:Tomcat提供了强大的安全机制,可以对Web应用进行认证和授权,保护用户数据的安全。
易用性:Tomcat提供了简单易用的管理界面,可以方便地配置和管理Web应用。
总之,Tomcat是一个功能强大、稳定可靠的Java Web服务器,广泛应用于企业级Web应用的开发和部署。
tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。
二.Tomcat部署
# 1.tomcat需要jdk的环境,下载jdk,关闭防火墙与selinux
[root@c81 ~]# yum -y install java-17-openjdk java-17-openjdk-devel
[root@c81 bin]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@c81 bin]# setenforce 0
# 2.下载tomcat9.0.80版本
[root@c81 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
[root@c81 ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz
# 3.解压缩至/usr/local/目录下
[root@c81 ~]# tar xf apache-tomcat-9.0.80.tar.gz -C /usr/local/
[root@c81 ~]# cd /usr/local/
[root@c81 local]# ls
apache-tomcat-9.0.80 etc include lib64 sbin src
bin games lib libexec share
# 4.做一个软链接方便编辑
[root@c81 local]# ln -s /usr/local/apache-tomcat-9.0.80 /usr/local/tomcat
[root@c81 local]# ll
total 8
drwxr-xr-x. 9 root root 4096 Oct 10 04:02 apache-tomcat-9.0.80
lrwxrwxrwx. 1 root root 31 Oct 10 04:05 tomcat -> /usr/local/apache-tomcat-9.0.80
# 5.查看tomcat内的文件
[root@c81 local]# cd tomcat/
[root@c81 tomcat1]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@c81 tomcat]# cd bin/
[root@c81 bin]# ls
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
# 上面这些文件有启动,关闭tomcat,检查配置文件的文件
# 6.用catalina.sh 启动tomcat服务
[root@c81 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/tomcat1/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@c81 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 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
# 这里的8080和8005端口就是tomcat服务的端口
# 8005是接受关闭指令的端口
# 8080是网页端口
# 这时就可以通过8080端口访问tomcat页面了
# 7.创建java页面
[root@c81 tomcat]# cd webapps/
[root@c81 webapps]# ls
docs examples host-manager manager ROOT
[root@c81 webapps]# mkdir web
[root@c81 webapps]# ls
docs examples host-manager manager ROOT web
[root@c81 webapps]# cd web/
[root@c81 web]# ls
[root@c81 web]# vim index.jsp
[root@c81 web]# cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hellow World");
%>
</body>
</html>
在ip访问的路径下加上web目录
就可以看到页面了
访问webapps目录下的其它页面都需要设置权限
# 1.根据图中提示修改/usr/local/tomcat/conf目录下的tomcat-users.xml文件
# 文件最后的有role模板,直接写进入即可
[root@c81 conf]# vim tomcat-users.xml
<role rolename="manager-gui"/>
<user username="zmq" password="2664218545Z" roles="manager-gui"/>
# 修改了配置文件,重启服务
[root@c81 conf]# /usr/local/tomcat1/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/tomcat1/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@c81 conf]# /usr/local/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/tomcat1/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
# 2.按图中修改manager下的context.xml配置文件
[root@c81 META-INF]# pwd
/usr/local/tomcat/webapps/manager/META-INF
[root@c81 META-INF]# ls
context.xml
[root@c81 META-INF]# vim context.xml
# 在其中这一段,在allow这一行允许的地址将本机ip添加进去,我用d+直接将这一网段全部添加允许
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.187\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
# 这时可以访问manager界面了
用刚才添加的用户和密码登录
其它web页面的服务也是这么写
例如 Host manager
# 1.编辑/usr/local/tomcat/conf/tomcat-users.xml
# 新建一个角色,可以使用同一用户使用多个角色,这里就不新建用户了
[root@c81 conf]# vim tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="zmq" password="2664218545Z" roles="manager-gui,admin-gui"/>
# 2.重启服务
[root@c81 tomcat]# cd bin
[root@c81 bin]# ./catalina.sh stop
[root@c81 bin]# ./catalina.sh start
# 3.按图中要求修改/usr/local/tomcat/webapps/host-manager/META-INF/下的context.xml
# 同样在allow这一行将本机ip添加上去,允许
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.187\.\d+|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"/>
# 4.这时可以访问页面,使用用户名和密码登录