Tomcat零碎收集

问题:

1. **Tomcat是什么?**
2. **Tomcat、Apache、Nginx都是啥关系?**
3. **Tomcat目录及说明**
4. **Tomcat基本框架**
5. **tomcat文件解释:server.xml、web.xml** 

简单解答:

1.  **Tomcat是什么?**

Tomcat是一种轻量级应用服务器,是一个独立的Servlet、JSP的容器,能够处理动态资源,也提供一些web服务器的功能,能够处理静态资源请求。经常搭配Apache/Nginx做动态资源/静态资源分开处理,搭配Nginx做负载均衡。

2. **Tomcat、Apache、Nginx都是啥关系?**

Apache是纯粹的web/http服务器,只能处理静态资源,Nginx也可以作为web/http服务器,但除此之外也提供负载均衡功能。参考1:WEB服务器、应用程序服务器、HTTP服务器区别。参考2:apache、node.js、nginx、tomcat谁能帮我捋一捋关系?

3. **Tomcat目录及说明**
  • /bin - 启动,关闭和其他脚本。
  • /conf - 配置文件和相关的 DTD。这里最重要的文件是 server.xml。它是容器的主要配置文件。
  • /lib - 用来存放 tomcat 运行需要加载的 jar 包。
  • /logs - 日志文件目录。
  • /webapps - 存放 Web 应用程序的目录。
  • /work - 部署 Web 应用程序的临时工作目录。
  • /temp - 运行时产生的临时文件。
  1. Tomcat基本框架
  • tomcat_architecture.jpeg
  • 如上图,Tomcat可以按功能划分许多不同的组件,这些组件都可以通过/conf/server.xml文件中可定义和配置,包括Server, Service, Connector, Engine, Cluster, Host, Alias, Context, Realm, Valve, Manager, Listener, Resources, ResourceEnvRef, WatchedResource, Store, Transaction, Channel, Membership, Transport, Member, ClusterListener等,一般可分为以下四类:
    1、顶级组件:位于配置层次的顶级,并且彼此间有着严格的对应关系,有Server组件、Service组件;
    2、连接器:连接客户端(可以是浏览器或Web服务器)请求至Servlet容器,只有Connector组件,
    3、容器:表示其功能是处理传入请求的组件,并创建相应的响应。如Engine处理对一个Service的所有请求,Host处理对特定虚拟主机的所有请求,并且Context处理对特定web应用的所有请求;
    4、被嵌套的组件:位于一个容器当中,但不能包含其它组件;一些组件可以嵌套在任何Container中,而另一些只能嵌套在Context中。
    
    参考:Tomcat(一) Tomcat是什么:Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置
  1. tomcat文件解释:server.xml、web.xml
  • server.xml: Tomcat核心配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息。
    如server.xml默认配置(删除注释内容)如下:
    server_xml.jpeg
  • web.xml:为部署与Tomcat实例上的所有web应用程序提供部署描述符,通常用于为webapp提供默认的servlet定义和基本的MUIME映射表。
  • tomcat的web.xml写入的都是web的默认配置,自定义配置需要在web项目的web.xml中设置。
    参考链接:tomcat下的web.xml和项目中的web.xml
    tomcat_web_xml.png