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

相关推荐
艸肅6 小时前
Ubuntu 安装 JDK (含手动安装)
java·ubuntu·jdk
m0_734172426 小时前
Python字典计数怎样处理首次出现的键
java
卓怡学长6 小时前
w204基于springbo旅行社签证代理服务系统
java·spring boot·spring·intellij-idea
泡海椒6 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
Json____6 小时前
家居装修 AI 智能咨询助手:让装修咨询从“大海捞针“变成“一问即答“
java·后端·vue3·it学习·wwwoop.com
vipxieliang6 小时前
ValidX 在微服务架构中的验证策略
java·spring boot
用户094248568036 小时前
第18章:ConcurrentHashMap与并发容器实战
java·jvm
小羊没烦恼!7 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
❀͜͡傀儡师7 小时前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
牧瀬クリスだ7 小时前
Spring统一功能处理
java·spring boot·spring·状态模式