首页
/ Apache Tomcat 服务器运行与配置完全指南

Apache Tomcat 服务器运行与配置完全指南

2025-07-07 04:03:43作者:宣利权Counsellor

前言

Apache Tomcat 是一个开源的 Java Servlet 容器,实现了 Java Servlet 和 JavaServer Pages (JSP) 规范。作为轻量级的应用服务器,Tomcat 被广泛用于开发和部署 Java Web 应用程序。本文将全面介绍如何正确运行和配置 Apache Tomcat 服务器。

环境准备

Java 运行环境要求

Tomcat 需要 Java 标准版运行时环境(JRE)或开发工具包(JDK)才能运行。具体要求如下:

  • 最低版本:Tomcat @VERSION_MAJOR_MINOR@ 需要 JRE @MIN_JAVA_VERSION@ 或更高版本
  • 推荐版本:建议使用与 Tomcat 版本兼容的最新稳定版 JDK
  • 选择建议
    • 开发环境:推荐安装完整 JDK,便于调试和开发
    • 生产环境:可使用 JRE 以减少资源占用

Tomcat 安装步骤

1. 下载并安装 Java

  1. 从官方渠道获取 Java SE @MIN_JAVA_VERSION@ 或更高版本
  2. 按照官方文档完成安装
  3. 验证安装:在命令行执行 java -version 确认版本符合要求

2. 下载并安装 Tomcat

  1. 从 Apache Tomcat 官方网站获取二进制发行版
  2. 解压下载的压缩包到目标目录(通常命名为"apache-tomcat-[版本号]")
  3. 记下解压目录的完整路径,后续将作为 CATALINA_HOME

替代方案:高级用户可以从源码构建 Tomcat,具体方法参考 BUILDING.txt 文件

环境变量配置

Tomcat 通过环境变量控制其运行行为,主要变量如下:

核心变量

  • CATALINA_HOME(必需):

    • 指向 Tomcat 二进制发行版的根目录
    • 示例(Linux):export CATALINA_HOME=/opt/apache-tomcat-9.0
  • CATALINA_BASE(可选):

    • 指定 Tomcat 活动配置的根目录
    • 默认等于 CATALINA_HOME
    • 多实例部署时特别有用

Java 相关变量

  • JRE_HOME

    • 指定 JRE 安装路径
    • 示例:export JRE_HOME=/usr/lib/jvm/jre-11
  • JAVA_HOME

    • 指定 JDK 安装路径(提供更多启动选项)
    • 示例:export JAVA_HOME=/usr/lib/jvm/jdk-11

优先级:当同时设置 JRE_HOME 和 JAVA_HOME 时,JRE_HOME 优先

其他重要变量

  • CATALINA_OPTS

    • 指定启动 Tomcat 的 JVM 参数
    • 示例:export CATALINA_OPTS="-Xms512m -Xmx1024m"
  • CATALINA_PID(仅限 Linux):

    • 指定存储 Tomcat 进程 ID 的文件路径
    • 启用更可靠的启动/停止控制

推荐配置方式:setenv 脚本

最佳实践是通过 setenv 脚本集中管理环境变量:

  1. 创建脚本文件:

    • Windows: %CATALINA_BASE%\bin\setenv.bat
    • Linux: $CATALINA_BASE/bin/setenv.sh
  2. 示例内容(Linux):

#!/bin/sh
JAVA_HOME=/usr/lib/jvm/jdk-11
CATALINA_PID="/var/run/tomcat.pid"
CATALINA_OPTS="-Xms512m -Xmx1024m -server"

注意:CATALINA_HOME 和 CATALINA_BASE 不能在 setenv 中设置

启动与停止 Tomcat

启动命令

  • Windows

    %CATALINA_HOME%\bin\startup.bat
    或
    %CATALINA_HOME%\bin\catalina.bat start
    
  • Linux

    $CATALINA_HOME/bin/startup.sh
    或
    $CATALINA_HOME/bin/catalina.sh start
    

启动成功后,默认访问地址:http://localhost:8080/

停止命令

  • Windows

    %CATALINA_HOME%\bin\shutdown.bat
    或
    %CATALINA_HOME%\bin\catalina.bat stop
    
  • Linux

    $CATALINA_HOME/bin/shutdown.sh
    或
    $CATALINA_HOME/bin/catalina.sh stop
    

高级配置:多实例部署

Tomcat 支持单二进制多配置的部署模式,适合多用户共享场景:

目录结构划分

  • CATALINA_HOME(共享):

    • /bin:启动脚本
    • /lib:共享类库
  • CATALINA_BASE(实例独有):

    • /conf:配置文件(如 server.xml)
    • /logs:日志文件
    • /webapps:部署的 Web 应用
    • /work:临时工作目录
    • /temp:JVM 临时文件

配置示例

  1. 创建实例目录结构:
mkdir -p /opt/tomcat-instances/instance1/{conf,logs,webapps,work,temp}
  1. 复制必要文件:
cp $CATALINA_HOME/conf/* /opt/tomcat-instances/instance1/conf/
  1. 设置环境变量:
export CATALINA_BASE=/opt/tomcat-instances/instance1
export CATALINA_HOME=/opt/apache-tomcat-9.0

常见问题排查

1. 端口冲突

症状:Tomcat 启动失败,报端口占用错误

解决方案

  1. 修改 $CATALINA_HOME/conf/server.xml
  2. 查找并更改 8080 端口(建议使用大于1024的端口)
  3. 重启 Tomcat

2. 本地主机访问问题

症状:无法通过 localhost 访问

可能原因

  • 浏览器代理设置阻止访问本地
  • 系统 hosts 文件配置异常

解决方案

  • 检查浏览器代理设置,确保 localhost 不经过代理
  • 验证系统 hosts 文件包含 127.0.0.1 localhost 条目

可选组件

1. Apache Tomcat Native 库

功能

  • 提供基于 OpenSSL 的高性能 TLS 实现
  • 依赖 APR (Apache Portable Runtime) 库

部署建议

  • 生产环境考虑使用以提升性能
  • 开发环境通常不需要

禁用方法: 从 conf/server.xml 中移除 AprLifecycleListener

2. Apache Commons Daemon

功能

  • 将 Tomcat 安装为系统服务
  • Windows:procrun
  • Linux:jsvc

使用场景

  • 生产环境需要 Tomcat 随系统启动
  • 需要更可靠的服务管理

最佳实践建议

  1. 内存配置

    • 通过 CATALINA_OPTS 设置 JVM 内存参数
    • 示例:-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m
  2. 日志管理

    • 定期清理 logs 目录
    • 考虑使用 logrotate 等工具管理日志文件
  3. 安全加固

    • 删除默认示例应用
    • 修改默认管理员密码
    • 限制管理界面访问IP
  4. 性能调优

    • 根据应用特点调整连接器配置
    • 考虑启用压缩
    • 合理设置线程池参数

通过遵循本指南,您应该能够成功部署和运行 Apache Tomcat 服务器。对于更高级的配置和优化,建议参考官方文档中的详细配置指南。