当前位置: 首页 > news >正文

Tomcat服务器指南

Tomcat服务器全方位解析与部署指南

一、Tomcat服务器简介

1.1 基本定义与定位

Tomcat服务器是由Apache软件基金会开发的一款免费且开放源代码的Web应用服务器,在Web应用服务体系中属于轻量级应用服务器范畴。它专为运行Java相关Web应用而设计,核心功能是作为Servlet容器,为Servlet(Server Applet)和JSP(Java Server Pages)程序提供运行环境,是Java Web开发领域中开发、调试Servlet和JSP程序的首选工具,被广泛应用于中小型系统以及并发访问用户数量相对较少的场景。

对于初学者而言,可通过与Apache服务器的关联来理解Tomcat的作用。当在一台机器上完成Apache服务器的配置后,Apache服务器能够响应客户端对HTML(标准通用标记语言下的一个重要应用)页面的访问请求。而Tomcat本质上是Apache服务器的扩展组件,但在实际运行过程中,它具有独立运行的特性——启动Tomcat时,它会以一个与Apache服务器完全独立的进程形式在系统中运行,二者互不干扰又可协同工作,共同支撑Web应用的正常运转。

1.2 与相关技术的关联

Tomcat运行的核心依赖是JDK(Java Development Kit,Java开发工具包)。JDK为Java程序提供了运行所需的基础类库、Java虚拟机(JVM)等关键组件,只有在系统中正确安装并配置好JDK环境后,Tomcat才能够正常启动并运行Java Web应用。简单来说,Java语言开发的网页文件(如.jsp格式文件)必须部署在Tomcat这类Servlet容器中才能被正确解析和运行,而Tomcat的正常运作又离不开JDK环境的支持,三者形成了紧密的技术依赖关系。

1.3 中间件选型参考

在实际项目开发和部署过程中,中间件的选择需结合项目规模、开发场景、运行系统环境等因素综合考量,以下是常见中间件的适用场景分析:

中间件名称适用场景特点
Tomcat本地开发、中小型项目、个人开发项目开源免费、轻量级、配置简单、易于上手,对系统资源占用较少,能满足中小型应用的并发需求,是Java Web开发入门和中小型项目部署的常用选择
Jetty示例项目、小型项目、对服务器启动速度和资源占用有较高要求的场景同样是开源的Java Web服务器和Servlet容器,启动速度快、内存占用低,在开发调试阶段或小型应用部署中表现出色,也常被用于嵌入式场景
Apache HTTP ServerLinux系统环境下的Web服务部署,主要用于处理静态资源访问请求功能强大、稳定性高、跨平台性好,在处理HTML、CSS、JavaScript等静态资源方面性能优异,常与Tomcat等应用服务器配合使用,实现动静资源分离
JBOSS中大型项目、企业级应用部署开源的企业级应用服务器,支持多种Java EE规范,功能丰富,提供了分布式事务管理、集群等企业级特性,能够满足中大型项目复杂的业务需求
WebLogic大型商业项目、对系统稳定性和安全性要求极高的企业级应用由Oracle公司开发的商业级应用服务器,具备强大的集群能力、完善的安全机制、高可用性和可扩展性,适合大型企业的核心业务系统,但需要支付相应的授权费用
WebSphere大型商业项目、金融、电信等对系统可靠性和性能要求严苛的领域IBM公司推出的商业级应用服务器,遵循Java EE规范,在稳定性、安全性、可管理性以及对大型企业级应用的支持方面表现突出,广泛应用于金融、电信等关键行业的核心系统
GlassFish企业级应用开发与部署,尤其是对Java EE规范支持要求较高的场景开源的企业级应用服务器,由Oracle公司主导开发,完全支持Java EE规范,提供了丰富的开发工具和管理功能,适合需要完整Java EE支持的企业级应用

在实际选型时,若项目规模较小、预算有限且以Java Web开发为主,Tomcat通常是优先考虑的选择;若涉及大型商业项目且对系统稳定性、安全性和服务支持有高要求,WebLogic、WebSphere等商业中间件则更符合需求;而在Linux系统环境下,若需侧重处理静态资源,Apache HTTP Server配合Tomcat的组合也是常用方案。

二、Tomcat服务器部署步骤(Linux环境)

2.1 部署前准备:关闭防火墙与SELinux

在Linux系统中,防火墙和SELinux(Security-Enhanced Linux,安全增强型Linux)可能会对Tomcat服务器的网络访问和文件操作产生限制,为确保Tomcat能够正常部署和运行,首先需要关闭防火墙和SELinux。

2.1.1 关闭防火墙
  • 临时关闭防火墙(重启系统后失效):
[root@tomcat ~]# systemctl stop firewalld
[root@tomcat ~]# systemctl disable firewalld
[root@tomcat ~]# systemctl status firewalld
2.1.2 关闭SELinux
[root@tomcat ~]# setenforce 0
[root@tomcat ~]# vim /etc/selinux/config
[root@tomcat ~]# reboot
[root@tomcat ~]# getenforce

2.2 安装Java环境(JDK)

Tomcat运行依赖JDK,因此需要先在系统中安装JDK。本部署案例以安装Java 11版本为例,通过yum包管理器进行安装,操作步骤如下:

[root@tomcat ~]# yum -y install java-11-openjdk
  • 验证JDK安装结果:
    安装完成后,通过以下命令查看Java版本,确认JDK是否安装成功:
[root@tomcat ~]# java -version

若输出类似“openjdk version “11.0.xx” 20xx-xx-xx LTS”的信息,则表示JDK已成功安装。

2.3 解压并配置Tomcat

2.3.1 解压Tomcat压缩包

假设已获取Tomcat 10.0.23版本的压缩包(文件名为apache-tomcat-10.0.23.tar.gz),并将其放置在root用户的家目录(/root/)下。执行以下命令将Tomcat压缩包解压到/usr/local/目录下:

[root@tomcat ~]# tar -xzf apache-tomcat-10.0.23.tar.gz -C /usr/local/
  • 命令参数说明:
    • tar:Linux系统中用于打包和解压文件的命令。
    • -x:表示解压操作。
    • -z:表示处理的是.gz格式的压缩文件。
    • -f:指定要处理的压缩文件名称,该参数后必须紧跟压缩文件名。
    • -C /usr/local/:指定解压后的文件存放目录为/usr/local/
2.3.2 创建Tomcat软链接
[root@tomcat ~]# cd /usr/local/
[root@tomcat local]# ln -s apache-tomcat-10.0.23/ tomcat

2.4 自定义Hello World测试网页

为了验证Tomcat服务器是否能够正常运行Java Web应用,我们需要创建一个简单的Hello World测试网页(JSP格式),具体步骤如下:

2.4.1 创建测试网页目录

在Tomcat的Web应用部署目录(/usr/local/tomcat/webapps/)下创建一个名为test的目录,用于存放测试网页文件:

[root@tomcat local]# mkdir /usr/local/tomcat/webapps/test
2.4.2 创建并编辑JSP测试文件

进入test目录,使用vim编辑器创建并编辑index.jsp文件:

[root@tomcat local]# cd /usr/local/tomcat/webapps/test
[root@tomcat test]# vim index.jsp

index.jsp文件中输入以下内容:

<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hello World");
%>
</body>
</html>

2.5 启动Tomcat服务器

完成上述配置后,即可启动Tomcat服务器,具体命令如下:

[root@tomcat test]# cd /usr/local/tomcat
[root@tomcat tomcat]# bin/startup.sh
  • 命令说明:
    • 首先通过cd /usr/local/tomcat命令进入Tomcat的主目录。
    • bin/startup.sh是Tomcat的启动脚本(.sh后缀表示该脚本适用于Linux/Unix系统),执行该脚本即可启动Tomcat服务器。
2.5.1 验证Tomcat启动状态

Tomcat启动后,可通过以下命令查看系统中是否存在Tomcat相关进程,以确认服务器是否启动成功:

[root@tomcat tomcat]# ps -ef | grep tomcat
  • 命令说明:
    • ps -ef用于查看系统中所有正在运行的进程信息,-e表示显示所有进程,-f表示以全格式显示进程信息(包括进程ID、父进程ID、用户、启动时间、命令等)。

此外,Tomcat服务器默认使用8080端口提供Web服务,也可通过查看8080端口的监听状态来验证Tomcat是否启动成功,命令如下:

[root@tomcat tomcat]# netstat -tuln | grep 8080[root@ycy2 tomcat]# netstat -tuln | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN

[root@tomcat tomcat]# ss -tuln | grep 8080

2.6 测试访问Tomcat服务

访问tomcat首页:http://192.168.100.10:8080
访问hello world测试页:http://192.168.100.10:8080/test/

三、Tomcat拓展配置:访问管理界面

Tomcat提供了两个重要的管理界面:Host Manager(主机管理界面)和Server Status(服务器状态界面),通过这些界面可以方便地对Tomcat服务器进行管理和监控。默认情况下,这些管理界面可能无法直接访问,需要进行相关配置才能正常使用。

3.1 配置访问Host Manager界面

3.1.1 配置用户角色与登录信息

Host Manager界面需要用户登录才能访问,因此首先需要在Tomcat的用户配置文件tomcat-users.xml中设置具有访问权限的用户角色和登录用户名、密码。具体操作如下:

  1. 编辑tomcat-users.xml文件:
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
  1. 在文件末尾的</tomcat-users>标签上方添加以下内容:
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="admin-gui"/>
  • 配置说明:
    • <role rolename="admin-gui"/>:定义一个名为“admin-gui”的角色,该角色是Tomcat预定义的用于访问Host Manager界面的角色,只有拥有该角色的用户才能访问Host Manager界面。
    • <user username="tomcat" password="123456" roles="admin-gui"/>:创建一个用户,用户名为“tomcat”,密码为“123456”(实际应用中建议设置复杂度更高的密码以保证安全性),并将该用户分配到“admin-gui”角色,使其拥有访问Host Manager界面的权限。
  1. 保存并退出文件:在vim编辑器中按下Esc键,输入:wq并回车。
3.1.2 配置Host Manager访问权限(允许指定网段访问)

默认情况下,Tomcat的Host Manager界面可能只允许本地(服务器自身)访问,为了能够从客户端(如同一局域网内的其他机器)访问该界面,需要修改Host Manager的上下文配置文件,允许指定网段的IP地址访问。具体步骤如下:

  1. 编辑Host Manager的上下文配置文件context.xml
[root@tomcat ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
  1. 在文件中的<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="..." />标签的allow属性值中添加允许访问的网段。本案例中允许192.168.100.0/24网段(即IP地址范围为192.168.100.1192.168.100.254)的客户端访问,修改后的Valve标签内容如下:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="192\.168\.100\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  • 配置说明:
    • allow属性用于指定允许访问的IP地址或网段,多个地址或网段之间使用“|”分隔。
    • 192\.168\.100\.\d+:表示允许192.168.100.0/24网段的IP地址访问,其中“.”是转义字符(因为“.”在正则表达式中有特殊含义,需要转义),“\d+”表示匹配一个或多个数字。
    • 127\.\d+\.\d+\.\d+:允许本地回环地址(如127.0.0.1)访问,即允许在服务器本地访问。
    • ::10:0:0:0:0:0:0:1:是IPv6格式的本地回环地址,用于支持IPv6环境下的本地访问。
  1. 保存并退出文件。
3.1.3 重启Tomcat服务使配置生效

修改配置文件后,需要重启Tomcat服务器才能使配置生效。首先停止Tomcat服务,然后再启动服务,命令如下:

[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start
  • 命令说明:catalina.sh是Tomcat的核心脚本文件,stop参数用于停止Tomcat服务,start参数用于启动Tomcat服务。相比startup.shshutdown.sh脚本,catalina.sh脚本的功能更全面,支持更多的操作参数。

    在这里插入图片描述

3.2 配置访问Server Status界面

3.2.1 配置用户角色(添加manager-gui角色)

访问Server Status界面需要用户拥有“manager-gui”角色,因此需要在tomcat-users.xml文件中为已有的用户添加该角色,或者创建新的拥有该角色的用户。本案例中在之前创建的“tomcat”用户基础上添加“manager-gui”角色,具体操作如下:

  1. 编辑tomcat-users.xml文件:
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
  1. 将之前添加的用户配置行修改为:
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>
  • 配置说明:
    • 新增<role rolename="manager-gui"/>标签,定义用于访问Server Status界面和Manager App界面的“manager-gui”角色。
    • <user>标签的roles属性中添加“manager-gui”,使“tomcat”用户同时拥有“admin-gui”和“manager-gui”两个角色,既可以访问Host Manager界面,也可以访问Server Status界面和Manager App界面。
  1. 保存并退出文件。
3.2.2 配置Server Status访问权限(允许指定网段访问)

与Host Manager界面类似,默认情况下Server Status界面可能也只允许本地访问,需要修改其上下文配置文件,允许指定网段访问。具体步骤如下:

  1. 编辑Manager应用的上下文配置文件context.xml
[root@tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
  1. 在文件中的<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="..." />标签的allow属性值中添加允许访问的网段(本案例仍允许192.168.100.0/24网段访问),修改后的Valve标签内容如下:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="192\.168\.100\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  • 配置说明与Host Manager界面的context.xml文件配置相同,此处不再赘述。
  1. 保存并退出文件。
3.2.3 重启Tomcat服务

修改配置文件后,重启Tomcat服务器使配置生效:

[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start
3.2.4 测试访问Server Status界面

在这里插入图片描述

拓展:

搭建AI平台

#先搭建好http
#上传java工具包并解压
[root@rs2 ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg              Music     Public     Videos
Desktop          Downloads  jdk-17.0.15_linux-x64_bin.tar.gz  Pictures  Templates
[root@rs2 ~]# tar -xzvf jdk-17.0.15_linux-x64_bin.tar.gz -C /usr/local/
tar -xzvf jdk-17.0.15_linux-x64_bin.tar.gz -C /usr/local/[root@rs2 local]# cd jdk-17.0.15
[root@rs2 jdk-17.0.15]# ls
bin  conf  include  jmods  legal  lib  LICENSE  man  README  release
#配置环境变量(最后一行写入)
[root@rs2 jdk-17.0.15]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk-17.0.15
export PATH=/usr/local/jdk-17.0.15/bin:$PATH[root@rs2 jdk-17.0.15]# source /etc/profile#上传AI工具包
[root@rs2 ~]# ls
anaconda-ks.cfg  Downloads                         Music     Spring_AI_Demo-0.0.1-SNAPSHOT.jar
Desktop          initial-setup-ks.cfg              Pictures  Templates
Documents        jdk-17.0.15_linux-x64_bin.tar.gz  Public    Videos
#启动
[root@rs2 ~]# nohup java -jar Spring_AI_Demo-0.0.1-SNAPSHOT.jar &
[1] 60974
[root@rs2 ~]# nohup: ignoring input and appending output to ‘nohup.out’
#观察端口号8080起来了说明搭建好了
[root@rs2 ~]# ss -anit

在这里插入图片描述

http://www.dtcms.com/a/400003.html

相关文章:

  • 无用知识研究:用sfinae实现函数模板的overload [一]
  • 网站建设入门教学网站建设788gg
  • 湖南网站建设平台泰安网络安全培训
  • 做电视网站需要多大的服务器哈尔滨网站空间
  • 【Linux】基础IO(1)
  • 在目标图像中查找带 Alpha 掩码的 PNG 图标
  • MQTT 镜像部署文档
  • IPv4 报文中标识字段的理解
  • C语言:实现有序数组插入元素
  • day02-电路基础2
  • 开发避坑指南(56):IDEA2025.1.3新版本,这样配置工具栏,常用操作速度提升50%
  • springboot项目添加请求链路追踪日志traceId
  • 网站建化网站开发外包业务怎么接
  • 网页源代码 企业网站源码 html源码网站
  • IGBT反压限制
  • 做团购网站视频石家庄网络营销
  • 南宁本地有几家网站开发网站建设技术人员要会什么
  • 项目实战:RAG论文阅读助理系统性能测试
  • 【生态系统植被净初级生产力NPP】CASA(Carnegie-Ames-Stanford Approach)模型原理及应用
  • 济南门户网站建设网站建设菜单栏设计
  • 文昌品牌网站建设费用域名关键词查询
  • 整体设计 逻辑全链 之7 受控的自然语言-字面拼凑:正则表达式 之1
  • ABC424A-E题解
  • 基于深度学习的双对数坐标曲线转折点识别方法研究
  • 部门网站建设管理制度网站开发部署
  • 孟庆涛:GEO 三大趋势工具到生态,构建生成式 AI 时代的认知主权
  • 如何建一个公司网站WordPress不显示斜杠
  • 家政公司网站建设方案网站建设捌金手指下拉六
  • 北京超市网站建设孝感的网站建设
  • 中国精品课程网站湖南省郴州市有几个县