Tomcat 是一个开源的 Java Servlet 容器,用于运行 Java Web 应用程序。以下是 Tomcat 的整体架构图:
Tomcat 主要由以下几个组件组成:
- Web 服务器:用于处理 HTTP 请求。
- Servlet 容器:用于运行 Servlets 和 JSP 页面。
- 连接器(Connectors):用于连接 Web 服务器和 Servlet 容器。
- 服务器状态管理器:用于监控 Tomcat 的运行状态。
Tomcat 使用 Connector 和 Container 组件实现 Servlet 规范,Connector 负责接收用户请求,Container 负责处理用户请求。Tomcat 支持 APP Base Directory 和 Virtual Hosts 等功能,可以配置多个 Service,每个 Service 可以包含一个或多个 Connector,以及一个或多个 Container。
以下是一个简单的 server.xml
配置实例,展示了如何配置一个 Service,包含一个 HTTP Connector 和一个 Engine,以及在 Engine 下配置的 Host 和 Context:
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="myapp" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
在这个配置中,我们定义了一个名为 Catalina
的 Service,它包含了一个监听在端口 8080 上的 HTTP Connector,以及一个默认的 Engine,该 Engine 管理名为 localhost
的虚拟主机,该虚拟主机的应用程序基目录设置为 webapps
,并且包含一个指向 myapp
应用程序的 Context,该应用程序映射到服务器的根路径。