惠州住房和城乡建设厅网站50个办厂好项目
惠州住房和城乡建设厅网站,50个办厂好项目,镇江vi设计,网站程序引擎优质博文#xff1a;IT-BLOG-CN
【1】Server#xff1a;Server元素在最顶层#xff0c;代表整个 Tomcat容器#xff0c;因此他必须是 server.xml中唯一一个最外层的元素。一个 Server元素可以有一个或多个 Service元素。
Server port8005 shutdown…优质博文IT-BLOG-CN【1】ServerServer元素在最顶层代表整个 Tomcat容器因此他必须是 server.xml中唯一一个最外层的元素。一个 Server元素可以有一个或多个 Service元素。Server port8005 shutdownSHUTDOWN /Server可以看到最外层有一个Server元素shutdown 属性表示关闭 Server的指令port 属性表示 Server接收 shutdown指令的端口号设置为-1可以禁掉该端口。Server 的主要任务就是提供一个接口让客户端能够访问到这个 Service集合同时维护它所包含的所有的 Service的生命周期包含如何初始化如何结束服务如何找到客户端要访问的 Service。【2】Service在 Connector 和 Engine外面包一层把它们组合在一起对外提供服务。一个Service可以包含多个Connector但是只能包含一个Engine其中 Connector 的作用是从客户端接收请求Engine 的作用是处理接收进来的请求。Server port8005 shutdownSHUTDOWN Service nameCatalina /Service /Server如上图Server 中包含一个名称为 “Catalina” 的Service。实际上Tomcat 可以提供多个 Service不同的 Service监听不同的端口。【3】Connector接收连接请求创建 Request 和 Response对象用于和请求端交换数据然后分配线程让 Engine来处理这个请求并把产生的 Request 和 Response对象传给 Engine。通过配置 Connector可以控制请求 Service的协议及端口号。Server port8005 shutdownSHUTDOWN Service nameCatalina Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 / Connector port8009 protocolAJP/1.3 redirectPort8443 / /Service /Server通过配置第一个 Connector客户端可以通过 8080端口号协议访问 Tomcat。其中protocol 属性规定了请求的协议port 规定了请求的端口号redirectPort 表示当强制要求 https而请求是 http时重定向至端口号为 8443的ConnectorconnectionTimeout表示连接的超时时间。在这个例子中Tomcat 监听 Http请求使用的是 8080端口而不是正式的 80端口实际上在正式的生产环境中Tomcat也常常监听8080端口。而不是80端口。这是因为在生产环境中很少讲 Tomcat直接对外开放接收请求而是在 Tomcat和客户端之间加一层代理服务器如Nginx用于请求的转发、负载均衡、处理静态文件等通过代理服务器访问 Tomcat时是在局域网中因为一般仍使用8080端口。第二个配置 Connector客户端可以通过 8009端口使用 AJP协议访问 Tomcat。AJP协议负责和其他的Http服务器如Apache建立连接在把 Tomcat与其他服务器集成时就需要用到这个连接器之所以使用 Tomcat和其他服务器集成是因为 Tomcat可以用作 Servlet/JSP容器但是对静态资源处理速度较慢不如 Apache和 IIS等 HTTP服务器因此常常将 Tomcat和 Apache等集成前者做 Servlet容器后者处理静态资源而 AJP协议便负责 Tomcat与 Apache的连接。Tomcat 和 Apache等集成的原理如下图【4】EngineEngine 组件在 Service 组件有且只有一个Engine 是 Service组件中的请求处理组件。Engine组件从一个或多个Connector 中接收并处理并将完成的响应返回给 Connector最终传递给客户端。前面说到Engine、Host 和 Context都是容器但是它们不是平行关系而是父子关系Engine 包含 HostHost 包含 Context。Server port8005 shutdownSHUTDOWN Service nameCatalina Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 / Connector port8009 protocolAJP/1.3 redirectPort8443 / Engine nameCatalina defaultHostlocalhost /Engine /Service /Server其中 name属性用于日志和错误信息在整个 Server中应该是唯一的。defalutHost 属性指定了默认的 host名称当发往本机的请求指定的 host名称不存在时一律使用 defaultHost指定的 host进行处理因此 defaulthost的值必须与 Engine中的一个Host组件的 name属性值匹配。【5】Engine 和 HostHost 是 Engine的子容器。Engine 组件中可以内嵌1个或者多个 Host组件每个 Host组件代表 Engine中的一个虚拟主机。Host组件至少有一个且其中一个的 name必须与 Engine组件中的 defaultHost属性相匹配。【6】Host 的作用Host 虚拟主机的作用是运行多个 Web应用一个 Context 代表一个 Web应用并负责安装、展开、启动、结束每个 Web应用。Host 组件代表的虚拟主机对应服务器中一个网络名实体如www.test.com或IP地址116.25.25.25为了使用户可以通过网络名连接Tomcat服务器这个名字应该在DNS服务器上注册。客户端通常使用主机名来标识它们希望连接的服务器该主机名也会包含在 HTTP请求头中Tomcat 从 HTTP头中提取出主机名寻找名字匹配的主机。如果没有匹配请求会发送至默认的主机。因此默认主机不需要再 DNS服务器中注册网络名因为任何与所有 Host名称不匹配的请求都会路由至默认主机。【7】Host 的配置name 属性指定虚拟主机的主机名一个 Engine有且只有一个 Host组件的 name属性和 Engine组件的 defaultHost属性相匹配一般情况下主机名需要是在 DNS服务器中注册网络名但是 Engine指定的 defaultHost不需要。Server port8005 shutdownSHUTDOWN Service nameCatalina Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 / Connector port8009 protocolAJP/1.3 redirectPort8443 / Engine nameCatalina defaultHostlocalhost Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue /Host /Engine /Service /ServerunpackWARs 指定了是否将代表 Web应用的 WAR文件解压如果是 true通过解压后的文件结构运行该 Web应用如果是false直接使用 WAR文件运行 Web应用。【8】ContextContext元素代表在虚拟主机上运行的一个Web应用。在后文中提到 Context、应用或 Web应用他们都代指Web应用每个 Web应用基于 WAR文件或 WAR文件解压后对应的目录这里称为应用目录Context 是 Host 的子容器每个 Host 都可以定义任意多的 Context元素。Context元素的配置Context 元素最重要的属性是 docBase 和 path此外reloadable 属性也比较常用。docBase 指定了该 Web应用使用 war包路径或应用目录。需要注意的是在自动部署场景下配置文件位于 xmlBase中docBase 不在 appBase目录中才需要指定如果 docBase指定的 war包或应用目录就在 appBase中则不需要指定。因为 Tomcat会自动扫描 appBase中的 war包和应用目录制定了反而造成问题。path 指定了访问该Web应用上下文路径当请求到来时Tomcat 根据 Web应用的 path属性与 URL匹配程度来选择 Web应用处理相应请求。例如Web 应用 app1的 path属性是/app1Web应用 app2的path属性是/app2那么请求/app1/index.html会交由app1来处理而请求 /app2/index.html会交由 app2来处理。如果一个 Context元素的 path属性为那么这个Context是虚拟主机的默认的 Web应用当请求的uri与所有的 path都不匹配时使用该默认Web应用来处理。但是需要注意的是在自动部署场景配置文件位于xmlBase中不能指定path属性path属性由配置的文件的文件名WAR文件的文件名或应用目录的名称自动推导出来。如扫描 Web应该时发现xmlBase目录下的app1.xml或appBase目录下的 app1.WAR或 app1应用目录则该Web用于的path属性是app1。如果名称不是app1而是ROOT则该Web应用时虚拟主机默认的Web应用此时path属性推导为。reloadable属性指示tomcat是否在运行时监控在 WEB-INF/classes和WEB-INF/lib目录下class文件的改动。如果值为 true那么当 class文件改动时会重新 web应用的重新加载。在开发环境下reloadable 设置为 ture便于调试但是在生产环境中设置为 true会给服务器带来性能压力因此reloadable参数的默认值为false。在该例子中docBase 位于 Host的 appBase目录之外path属性没有指定而是根据 app1.xml自动推导为 “app1”。Context docBaseD:Program Filesapp1.war reloadabletrue/Context若是自动部署即 autoDeploy“true”那么 server.xml配置文件中没有 Context元素的配置。这是因为 Tomcat开启了自动部署Web应用没有在 server.xml中配置静态部署而是由 Tomcat通过特定的规则自动部署。