tomcat部署

  • Post author:
  • Post category:其他



tomcat



tomcat简介

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。

tomcat应用场景:

lnmt




tomcat 配置文件说明

  • server.xml:Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;
  • web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;
  • context.xml:所有host的默认配置信息;
  • logging.properties:日志相关配置;
  • tomcat-users.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户指定角色等将通过编辑此文件实现;
  • catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力,以安全模式启动Tomcat会使用这个配置
  • catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;
  • jaspic-providers.xml:用户认证配置文件



tomcat部署


部署流程

关闭防火墙与SELinux

安装jdk(java)环境



tomcat官网

下载tomcat二进制包

解压、编译、启动tomcat

去浏览器网页测试是否可以访问



准备环境

#防火墙要处于关闭状态
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
#SELinux要处于禁用状态
[root@localhost ~]# getenforce
Disabled



安装jdk环境

#安装jdk环境
[root@localhost ~]# dnf -y install java-17-openjdk
.......安装过程略......



安装tomcat

#下载tomcat的二进制包至/usr/local/src目录下
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz
--2022-09-27 16:54:26--  https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11972768 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-10.0.23.tar.gz’

apache-tomcat-10.0.23.tar.gz   100%[===================================================>]  11.42M  3.56MB/s    in 3.3s

2022-09-27 16:54:30 (3.43 MB/s) - ‘apache-tomcat-10.0.23.tar.gz’ saved [11972768/11972768]

[root@localhost src]# ls
apache-tomcat-10.0.23.tar.gz
#解压tomcat二进制包至/usr/local下
[root@localhost src]# tar xf apache-tomcat-10.0.23.tar.gz -C /usr/local/
#进到/usr/local目录下
[root@localhost src]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-10.0.23  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
#将一长串的tomcat目录改名为tomcat
[root@localhost local]# mv apache-tomcat-10.0.23/ tomcat
[root@localhost local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src  tomcat
#进到tomcat目录里查看里面的目录与文件
[root@localhost local]# cd tomcat/
[root@localhost tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
#写一个hello world的java页面用于测试
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@localhost webapps]# mkdir test
[root@localhost webapps]# vim test/index.jsp
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hellow World");
        %>
</body>
</html>

#进到tomcat的bin目录查看一下服务管理脚本
[root@localhost webapps]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ls
bootstrap.jar       ciphers.sh                    daemon.sh     migrate.bat       shutdown.sh           tool-wrapper.bat
catalina.bat        commons-daemon.jar            digest.bat    migrate.sh        startup.bat           tool-wrapper.sh
catalina.sh         commons-daemon-native.tar.gz  digest.sh     setclasspath.bat  startup.sh            version.bat
catalina-tasks.xml  configtest.bat                makebase.bat  setclasspath.sh   tomcat-juli.jar       version.sh
ciphers.bat         configtest.sh                 makebase.sh   shutdown.bat      tomcat-native.tar.gz
#启动tomcat
[root@localhost 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的默认端口是8080。8005是用于停止tomcat的端口号
[root@localhost bin]# 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            128                                [::]:22                         [::]:*
LISTEN       0            1                    [::ffff:127.0.0.1]:8005                          *:*
LISTEN       0            100                                   *:8080                          *:*


通过浏览器访问

访问tomcat默认首页

image-20220927174124621

访问自建的hello world测试页

image-20220927174226734




配置tomcat



访问Host Manager界面

Host Manager界面用于管理虚拟主机

1.点击【Host Manager】

image-20220927174450206

2.初次访问可以看到“Access Denied”,意为访问拒绝。该界面说明了如何设置访问不被拒绝

image-20220927174630769

这张是上张图翻译后的

image-20220927174914417

[root@localhost tomcat]# pwd
/usr/local/tomcat
#配置tomcat-users.xml文件,在</tomcat-users>行上面添加两行,设置角色,登录用户名和密码,
#角色名称只能是admin-gui  用户名和密码自定义
[root@localhost tomcat]# vim conf/tomcat-users.xml
<role rolename="admin-gui"/>		#添加此行
<user username="tomcat" password="123456" roles="admin-gui"/>	 #添加此行
</tomcat-users>		#默认在最后一行

#配置webapps/host-manager/META-INF/context.xml文件,允许你当前的网段访问,在allow字段后添加
[root@localhost tomcat]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<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\.92\.\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"/>
</Context>
#重启服务,生效配置
[root@localhost tomcat]# /usr/local/tomcat/bin/catalina.sh stop
[root@localhost tomcat]# /usr/local/tomcat/bin/catalina.sh start

配完上述配置后再次访问【Host Manager】

用户名与密码就是你在

tomcat-users.xml

里配置的那个

image-20220927180917170

image-20220927181725199




访问Server Status

1.访问【Server Status】

image-20220927181937262

2.初次访问可以看到“Access Denied”,意为访问拒绝。该界面说明了如何设置访问不被拒绝

是不是跟上一步相似?只是角色类型不一样了

image-20220927182112887

[root@localhost tomcat]# pwd
/usr/local/tomcat
[root@localhost tomcat]# vim conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>		#添加此行
<user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>	 #roles追加一个manager-gui
</tomcat-users>

#配置webapps/manager/META-INF/context.xml文件,允许你当前的网段访问,在allow字段后添加
[root@localhost tomcat]# vim webapps/manager/META-INF/context.xml
<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\.92\.\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"/>
</Context>

#重启服务,生效配置
[root@localhost tomcat]# bin/catalina.sh stop
[root@localhost tomcat]# bin/catalina.sh start

配完上述配置后再次访问【Server Status】

image-20220927183108526



访问Manager App

因配置了【Server Status】所以【Manager App】可以直接访问!

image-20220927183214219

image-20220927183144081



版权声明:本文为m0_50111062原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。