中间件

Tomcat 基础

·7 分钟阅读·2669 字

Tomcat Web 容器基础——端口说明、配置文件、部署方式、虚拟主机、用户验证

📋 目录

Tomcat 基础

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,用于部署和运行 Java Web 应用。


一、端口说明

Tomcat 默认监听以下端口:

端口协议用途安全建议
8080/tcpHTTP接收 HTTP 访问请求默认对外开放
8443/tcpHTTPS接收 HTTPS(HTTP+SSL)访问请求需配置 SSL 证书
8009/tcpAJP与其他 HTTP 服务器(如 httpd)通信,接收动态资源请求禁止对客户端开放,仅对指定的 httpd 服务器开放
8005/tcpSHUTDOWN接收关闭 Tomcat 的命令默认仅侦听 127.0.0.1:8005

关闭 Tomcat 的方法:

`ash

安装 telnet

yum install -y telnet

连接 8005 端口并发送关闭指令(大小写敏感)

telnet 127.0.0.1 8005 SHUTDOWN `


二、用户角色说明

角色可访问页面说明
manager-statusServer Status(服务器状态查看)基础监控
manager-guiManager APP + Server StatusWeb 界面管理应用,不能与 manager-script/jmx 共用
manager-script文本界面 + Server Status脚本方式管理
manager-jmxJMX 代理 + Server StatusJMX 监控管理
admin-guiHost Manager(虚拟主机管理)不能与 admin-script 共用
admin-script文本界面脚本方式管理

三、配置文件详解

3.1 核心配置文件

配置文件用途是否动态加载
catalina.policyJava Class 安全策略定义(系统代码、Web 应用、Catalina 权限)
catalina.properties标准 Java 属性(安全设置、类加载、类扫描、字符串缓存)
logging.properties日志记录功能(阈值、日志位置)
context.xml全局上下文对象(虚拟目录、Session 会话保持)是,自动重载
server.xmlTomcat 实例主要配置文件(Catalina 行为)否,修改需重启
tomcat-users.xml用户、密码、角色信息(认证和授权)
web.xml全局 Servlet 容器默认配置(Servlet、Filter、Session、MIME)

3.2 server.xml 元素结构

server.xml 是 Tomcat 最重要的配置文件,包含以下核心元素:

Server(根元素) ├── Listener(监听器) ├── GlobalNamingResources(全局命名资源) └── Service(服务) ├── Connector(连接器) └── Engine(引擎) ├── Realm(领域/认证源) ├── Host(虚拟主机) │ ├── Context(上下文) │ └── Valve(阀门) └── ...

各元素说明:

  • Server:顶级标签,一个 Server 代表一个 Tomcat 实例(Catalina 实例),可包含一个或多个 Service
  • Listener:监听特定事件(如启动/关闭),事件触发时做出响应
  • GlobalNamingResources:全局 JNDI 命名资源定义(数据源等)
  • Service:一组 Connector + Engine 的组合
  • Connector:定义 Tomcat 监听的端口和协议(HTTP/AJP)
  • Engine:处理所有 Connector 接收的请求,包含一个或多个 Host
  • Realm:用户认证数据库实现,可集成 LDAP、JDBC 等外部认证源
  • Host:虚拟主机定义,一个 Engine 可包含多个 Host
  • Context:单个 Web 应用的上下文配置
  • Valve:插入请求处理管道的组件,用于实现拦截/日志/SSO 等功能

四、发布 War 工程包

Tomcat 支持四种部署方式:

方法 1:Manager APP Web 页面上传

适用场景:通过 Web 方式远程上传 WAR 包。

方法 2:SSH + 手动复制

适用场景:通过 SSH 远程上传 WAR 包。

ash cp app.war $CATALINA_BASE/webapps/

方法 3:Manager APP 指定路径(非 webapps 目录)

适用场景:WAR 包已上传到服务器的非 Tomcat 目录。

  • 在 Context Path 栏输入自定义 URL 路径
  • 系统自动将 WAR 包复制到 webapps/ 目录并解压部署

方法 4:命令行指定路径

ash curl -u username:password "http://localhost:8080/manager/text/deploy?path=/app&war=file:/path/to/app.war"


五、用户验证机制

验证方法名称说明
BASIC基本验证非 SSL 环境下使用明文密码
DIGEST摘要验证非 SSL 环境下使用哈希密码
FORM表单验证自定义登录页面,非 SSL 环境使用明文密码
CLIENT-CERT客户端证书验证使用客户端证书确认身份,需启用 SSL/TLS

六、虚拟主机

6.1 作用

当需要部署多个独立网站时,可以采用单服务器多虚拟主机的方式。

6.2 类型

  1. 相同 IP,不同端口
  2. 不同 IP,相同端口
  3. 相同 IP + 端口,不同 Host 头

关联文档

  • 20-areas/cloud-native/linux/system/Nginx 基础 — Nginx 反向代理
  • 20-areas/cloud-native/programming/java/JVM 内存结构 — JVM 调优
  • 面试题/Tomcat 面试题 — Tomcat 高频面试题(待整理)