Tomcat 配置与使用指南

Tomcat 配置与使用指南

1. Tomcat 简介

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

1.1 基本概念

  • Tomcat 是一个免费的、开源的 Servlet 容器,用于运行 Java 程序
  • 是开发和调试 Servlet (Server Applet)、JSP(Java Server Pages)程序的首选平台
  • Tomcat 是常见的中间件之一,专门用于运行 Java 程序
  • Java 语言开发的网页(.jsp)需要运行在 Tomcat 中
  • Tomcat 本身的运行依赖于 JDK 环境

1.2 常见中间件对比

使用场景 推荐中间件
本地开发、小项目、个人开发 Tomcat
Linux 系统 Jetty 或 Apache HTTPD
大型项目 JBOSS 或 WebLogic
商业项目 WebLogic/WebSphere(其他:JBoss、GlassFish)
示例项目或小项目 Jetty
一般项目 Tomcat

2. Tomcat 部署

2.1 环境准备

bash 复制代码
# 关闭防火墙和 SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.2 安装 Java 环境

bash 复制代码
yum -y install java-11-openjdk

2.3 安装 Tomcat

bash 复制代码
# 解压 Tomcat 到 /usr/local/ 目录
tar -xzf apache-tomcat-10.0.23.tar.gz -C /usr/local/
cd /usr/local/

# 创建软链接
ln -s apache-tomcat-10.0.23/ tomcat

2.4 创建测试页面

bash 复制代码
# 创建测试目录
mkdir -p /usr/local/tomcat/webapps/test
cd /usr/local/tomcat/webapps/test

# 创建测试页面
cat > index.jsp << 'EOF'
<html>
<head>
<title>Test Page</title>
</head>
<body>
<%
    out.println("Hello World");
%>
</body>
</html>
EOF

2.5 启动 Tomcat

bash 复制代码
cd /usr/local/tomcat
bin/startup.sh
# 默认端口为8080

# 检查进程,可以查看到有java和tomcat的进程,说明服务已经启动成功
ps -ef | grep tomcat

2.6 访问测试

  • Tomcat 首页:http://192.168.100.10:8080
  • Hello World 测试页:http://192.168.100.10:8080/test/

3. Tomcat 管理界面配置

3.1 Host Manager 配置

配置用户权限
bash 复制代码
vim /usr/local/tomcat/conf/tomcat-users.xml

</tomcat-users> 前添加:

设置角色,登录用户名和密码,角色名称只能是admin-gui 用户名和密码自定义

xml 复制代码
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="admin-gui"/>
</tomcat-users>
配置访问权限
bash 复制代码
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml

修改 allow 字段:

允许192.168.100.0/24网段访问,在allow字段后添加

xaml 复制代码
<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" />
重启服务,先关服务,再启服务
bash 复制代码
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start

3.2 Server Status 和 Manager App 配置

配置用户权限

登录网页测试登录Host Manager 输入对应的用户名和密码

用户名为tomcat,密码为123456

bash 复制代码
vim /usr/local/tomcat/conf/tomcat-users.xml

</tomcat-users> 前添加:

xaml 复制代码
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>
</tomcat-users>
配置访问权限

编辑manager/META-INF/context.xml,在allow字段添加允许192.168.100.0/24网段访问

bash 复制代码
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

修改 allow 字段:

xml 复制代码
<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" />
重启服务,先关服务,再启服务
bash 复制代码
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start

3.3 访问管理界面

访问Manager App的时候就不需要密码了,因为访问了Server Status界面,所以不用输入密码

  • Host Manager : http://192.168.100.10:8080/host-manager
  • Server Status : http://192.168.100.10:8080/manager/status
  • Manager App : http://192.168.100.10:8080/manager/html

登录用户名:tomcat,密码:123456


4. Spring AI 服务部署

4.1 安装 JDK 17

bash 复制代码
# 将jdk-17.0.15_linux-x64_bin.tar.gz拖入
# 解压 JDK
tar -xzf jdk-17.0.15_linux-x64_bin.tar.gz -C /usr/local/
cd /usr/local/
cd jdk-17.0.15/

# 配置环境变量
cat >> /etc/profile << 'EOF'
export JAVA_HOME=/usr/local/jdk-17.0.15
export PATH=$JAVA_HOME/bin:$PATH
EOF

# 生效环境变量
source /etc/profile

# 验证安装
java -version

4.2 部署 Spring AI 应用

bash 复制代码
# 后台运行 Spring AI 应用
nohup java -jar Spring_AI_Demo-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

# 查看日志
tail -f app.log

相关推荐
陈小桔几秒前
idea中重新加载所有maven项目失败,但maven compile成功
java·maven
小学鸡!1 分钟前
Spring Boot实现日志链路追踪
java·spring boot·后端
xiaogg367813 分钟前
阿里云k8s1.33部署yaml和dockerfile配置文件
java·linux·kubernetes
逆光的July29 分钟前
Hikari连接池
java
微风粼粼40 分钟前
eclipse 导入javaweb项目,以及配置教程(傻瓜式教学)
java·ide·eclipse
番茄Salad41 分钟前
Spring Boot临时解决循环依赖注入问题
java·spring boot·spring cloud
天若有情6731 小时前
Spring MVC文件上传与下载全面详解:从原理到实战
java·spring·mvc·springmvc·javaee·multipart
祈祷苍天赐我java之术1 小时前
Redis 数据类型与使用场景
java·开发语言·前端·redis·分布式·spring·bootstrap
Olrookie2 小时前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
倚栏听风雨3 小时前
java.lang.SecurityException异常
java