中间件

Tomcat 基础

·7 分钟阅读·2558 字

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

📋 目录

---|------|------|---------| | 8080/tcp | HTTP | 接收 HTTP 访问请求 | 默认对外开放 | | 8443/tcp | HTTPS | 接收 HTTPS(HTTP+SSL)访问请求 | 需配置 SSL 证书 | | 8009/tcp | AJP | 与其他 HTTP 服务器(如 httpd)通信,接收动态资源请求 | 禁止对客户端开放,仅对指定的 httpd 服务器开放 | | 8005/tcp | SHUTDOWN | 接收关闭 Tomcat 的命令 | 默认仅侦听 127.0.0.1:8005 | 关闭 Tomcat 的方法: `ash

安装 telnet

yum install -y telnet

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

telnet 127.0.0.1 8005

SHUTDOWN

`


2. 用户角色说明

角色可访问页面说明
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. 配置文件详解

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 等功能

4. 发布 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”

`


5. 用户验证机制

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

6. 虚拟主机

6.1 作用

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

6.2 类型

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

关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro