Tomcat 服务器

1.Tomcat 简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Tomcat是一个免费的开源的Serlvet容器,用来运行java程序的容器
是开发和调试Servlet(Server Applet)、JSP(Java Server Pages) 程序的首选;
Tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中,而tomcat本身的运行也依赖于jdk环境。

常见的中间件:
一般本地开发的话,小项目,或者是个人开发建议使用tomcat;
linux系统建议使用jetty或apache hpppd;
大型的项目就用JBOSS或webloigc;

大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等;

一些示例项目或者小项目常采用
jetty;tomcat , jboss, weblogic, websphere 一般项目tomcat就可以了。

2.部署tomcat

//关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld.service &> /dev/null && echo "关闭防火墙 ok"
[root@localhost ~]# systemctl disable firewalld.service &> /dev/null && echo "防火墙无法开机自启 ok"
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

//安装java并查看版本是我们需要的吗
[root@tomcat ~]# yum -y install java-11-openjdk
[root@localhost ~]# java -version 
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
[root@localhost ~]# 

//解压tomcat到/usr/local/目录下
[root@tomcat ~]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz
[root@localhost ~]# tar -xzf apache-tomcat-10.0.23.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-10.0.23  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@tomcat local]# ln -s apache-tomcat-10.0.23/  tomcat

//自定义一个Hello World的 java的测试网页
[root@tomcat local]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# mkdir test
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  test
[root@localhost webapps]# vim test/index.jsp
[root@localhost webapps]# cat test/index.jsp 
<html>
<head>
	<title>test page</title>
</head>
<body>
     <%
     out.println("Hello World");
     %>
</body>
</html>

//启动tomcat
[root@localhost webapps]# cd ..
[root@localhost tomcat]# pwd
/usr/local/tomcat #注意目录的位置
[root@localhost tomcat]# bash 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.

#查看tomcat和java服务是否启动
#这里的默认端口为8080
[root@localhost tomcat]# ss -anlt
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@localhost tomcat]# ps -ef | grep tomcat
root        2271       1  8 07:13 pts/0    00:00:03 /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        2307    1444  0 07:14 pts/0    00:00:00 grep --color=auto tomcat
[root@localhost tomcat]# ps -ef | grep java
root        2271       1  4 07:13 pts/0    00:00:03 /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        2309    1444  0 07:15 pts/0    00:00:00 grep --color=auto java

测试访问

这里注意自己虚拟机的IP地址和后面的端口号
访问tomcat首页:http://192.168.141.140:8080
访问hello world测试页:http://192.168.141.140:8080/test/

网页访问成功
在这里插入图片描述
java测试页面访问成功
在这里插入图片描述
测试是否能够成功登录到tomcat首页中的host manager、server status、manager app
可以看见访问拒绝,访问失败

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如何修改,可访问host-manager

在这里插入图片描述

[root@localhost ~]# cd /usr/local/tomcat/
[root@localhost tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost tomcat]# vim conf/tomcat-users.xml 
#在最下面添加在浏览器找到的内容
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>

#直接添加后如下tomcat是账号名 123456 是修改后的密码 
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="admin-gui"/>
</tomcat-users>

#添加访问权限
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  test
[root@localhost webapps]# cd host-manager/
[root@localhost host-manager]# ls
css  images  index.jsp  META-INF  WEB-INF
[root@localhost host-manager]# cd META-INF/
[root@localhost META-INF]# vim context.xml                          
#修改前
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
#修改后
allow="192\.168\.141\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

#修改后关闭重启
[root@localhost META-INF]# /usr/local/tomcat/bin/tool-wrapper.sh stop
Sep 27, 2022 12:35:32 PM org.apache.catalina.startup.Tool main
SEVERE: Exception creating instance of stop
java.lang.ClassNotFoundException: stop
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at org.apache.catalina.startup.Tool.main(Tool.java:200)

[root@localhost META-INF]# /usr/local/tomcat/bin/tool-wrapper.sh start
Sep 27, 2022 12:35:41 PM org.apache.catalina.startup.Tool main
SEVERE: Exception creating instance of start
java.lang.ClassNotFoundException: start
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at org.apache.catalina.startup.Tool.main(Tool.java:200)

[root@localhost META-INF]# 

重新通过浏览器访问host-manager

在这里插入图片描述
host-manager访问成功
在这里插入图片描述

修改如何访问manage app

在这里插入图片描述
继续修改tomcat-users.xml,如下是修改后的内容

[root@localhost META-INF]# vim /usr/local/tomcat/conf/tomcat-users.xml
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>
</tomcat-users>


#添加访问权限,添加方法和host添加权限方法相同
[root@localhost META-INF]# cd /usr/local/tomcat/
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  test
[root@localhost webapps]# vim manager/
css/        images/     index.jsp   META-INF/   status.xsd  WEB-INF/    xform.xsl   
[root@localhost webapps]# vim manager/META-INF/context.xml 
....
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.141\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

#重新启动服务
[root@localhost webapps]# /usr/local/tomcat/bin/tool-wrapper.sh stop
Sep 27, 2022 12:54:46 PM org.apache.catalina.startup.Tool main
SEVERE: Exception creating instance of stop
java.lang.ClassNotFoundException: stop
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at org.apache.catalina.startup.Tool.main(Tool.java:200)

[root@localhost webapps]# /usr/local/tomcat/bin/tool-wrapper.sh start
Sep 27, 2022 12:54:51 PM org.apache.catalina.startup.Tool main
SEVERE: Exception creating instance of start
java.lang.ClassNotFoundException: start
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at org.apache.catalina.startup.Tool.main(Tool.java:200)
[root@localhost webapps]# 

浏览器重新访问并登录密码,
Server Status
Manager App
Host Manager
都访问成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐