参考资料

  1. Kapacitor是InfluxData开发的开源数据处理引擎
  2. Amazon Corretto 是亚马逊提供的免费、多平台、生产就绪的 OpenJDK 发行版
  3. IBM Java 是 IBM 提供的 Java 开发工具包(JDK)和运行时环境(JRE)
  4. Ruby是一种开源的、面向对象的动态编程语言
  5. Mongo-Express 是一个基于 Node.js 和 Express 的轻量级 Web 界面
  6. docker添加官方镜像源详细说明以及案例
  7. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  8. Vaultwarden 是 Bitwarden 密码管理器的轻量级

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器

Tomcat 详细简介

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,由 Apache 软件基金会开发。它实现了 Java Servlet、JavaServer Pages (JSP)、Java Expression Language 和 Java WebSocket 技术规范,是运行 Java Web 应用程序的流行选择。

Tomcat 特点

  1. 轻量级:相比完整的 Java EE 应用服务器,Tomcat 更轻量。

  2. 开源免费:遵循 Apache License 2.0 开源协议。

  3. 跨平台:支持 Windows、Linux、macOS 等操作系统。

  4. 模块化设计:支持通过配置文件灵活扩展功能。

  5. 高性能:优化的连接器(如 NIO、APR)支持高并发。

  6. 易于集成:可与 Apache HTTP Server、Nginx 等前端服务器集成。

最新更新内容及时间

  • 最新稳定版本:Tomcat 10.1.x(截至 2023 年 10 月)

  • 关键更新

    • 支持 Java 17 及更高版本。

    • 改进的 HTTP/2 支持。

    • 安全性增强和漏洞修复。

  • 发布时间:各版本发布时间可在 Apache Tomcat 官网 查看。

镜像下载地址

官网地址

https://tomcat.apache.org/

阅读的文档地址

Docker 安装示例

# 拉取官方 Tomcat 镜像
docker pull tomcat:10.1

# 运行 Tomcat 容器
docker run -d --name mytomcat -p 8080:8080 tomcat:10.1

# 挂载本地目录(可选)
docker run -d --name mytomcat -p 8080:8080 -v /path/to/webapps:/usr/local/tomcat/webapps tomcat:10.1

YAML 设置教程(以 Docker Compose 为例)

version: '3'
services:
  tomcat:
    image: tomcat:10.1
    ports:
      - "8080:8080"
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
    environment:
      - JAVA_OPTS=-Xmx512m
    restart: always

常用错误问题

  1. 端口冲突

    • 错误:Address already in use

    • 解决:更改 server.xml 中的端口号或停止占用端口的进程。

  2. 内存不足

    • 错误:java.lang.OutOfMemoryError

    • 解决:调整 catalina.shsetenv.sh 中的 JAVA_OPTS(如 -Xmx1024m)。

  3. 权限问题

    • 错误:Permission denied

    • 解决:确保 Tomcat 用户对日志、工作目录有写入权限。

  4. 应用部署失败

    • 错误:Deploying web application directory failed

    • 解决:检查 webapps 目录下的应用是否完整,或查看 catalina.out 日志。

  5. HTTP 404 错误

    • 错误:访问应用返回 404

    • 解决:确认应用已正确部署到 webapps 目录,且上下文路径(Context Path)正确。

  6. SSL 配置错误

    • 错误:SSL handshake failed

    • 解决:检查 server.xmlConnectorkeystoreFilekeystorePass 配置。