linux怎么查看本机内存大小
474
2022-09-07
tomcat 介绍
介绍
Tomcat的服务器是一个免费的开放源代码的网络应用服务器,轻量级属于应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.Tomcat是阿帕奇软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成。
优点
网页内存应用溢出侦测状语从句:预防 增强了管理程序服务器状语从句:管理程序的安全性 一般CSRF保护 请立即获取iTunes网络中应用的外部内容的直接引用 内存使用优化 更大的IO容量 重构聚类 性能优化状语从句:减少垃圾回收动作 重构程序部署,通过一个可选的独立部署程序,允许在将一个网页放进应用产品前验证状语从句:编译期它 基于JMX服务器的全面监视及网络管理程序 提高标签库的支撑能力,包括的改进池数据标签和插件 改进平台个人文库个人文库集成性,包括的的Windows和Unix的的 基于JMX的嵌入 增强的安全管理支撑 集成会话集群 文档扩充
配置
启动内存参数的配置 tomcat / bin / catalina.bat如果是linux就是catalina.sh 在rem的后面增加如下参数 集JAVA_OPTS = -Xms256m -Xmx256m -XX:MaxPermSize = 64m 修改Tomcat的JDK目录 打开tomcat / bin / catalina .bat 在最后一个rem后面增加 设置JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0 增加虚拟目录 /tomcat/conf/server.xml 第一行是以前默认存在的,第二行是新增的 < Context path =“”docBase =“ROOT”debug =“0”reloadable =“true”> Context>
server.xm介绍
整体结构
元素分类
1顶层元素:<服务器>和<服务> <服务器>元素是整个配置文件的根元素,<服务>元素则代表一个引擎元素以及一组与之相连的连接器元素。
2连接器:<连接器> <连接器>代表了外部客户端发送请求到特定服务的接口;同时也是外部客户端从特定服务接收响应的接口。
3容器:<发动机> <主机> <上下文> 容器的功能是处理连接器接收进来的请求,并产生相应的响应.Engine,主机和上下文都是容器,但它们不是平行的关系,而是父子关系:发动机包含主机,主机包含上下文。一个引擎组件可以处理服务中的所有请求,一个主机组件可以处理发向一个特定虚拟主机的所有请求,一个上下文组件可以处理一个特定的Web应用的所有请求。
4内嵌组件:可以内嵌到容器中的组件实际上,服务器,服务,连接器,发动机,主机和上下文是最重要的最核心的Tomcat的组件,其他组件都可以归为内嵌组件。
Connector
连接器的主要功能,是接收连接请求,创建请求和响应对象用于和请求端交换数据;然后分配线程让引擎来处理这个请求,并把产生的对象传给引擎请求和响应
通过配置第1个连接器,客户端可以通过8080端口号使用HTTP协议访问的Tomcat。其中,协议属性规定了请求的协议,端口规定了请求的端口号,redirectPort表示当强制要求的/ JSP容器,但是对静态资源的处理速度较慢,不如阿帕奇和IIS等HTTP服务器;因此常常将Tomcat的与阿帕奇等集成,前者作的Servlet容器,后者处理静态资源,而AJP协议便负责的Tomcat和Apache的的连接。
Engine
发动机组件在服务组件中有且只有一个;发动机是服务组件中的请求处理组件.Engine组件从一个或多个连接器中接收请求并处理,并将完成的响应返回给连接器,最终传递给客户端。
命名属性用于日志和错误信息,在整个服务器中应该唯一.defaultHost属性指定了默认的主机名称,当发往本机的请求指定的主机名称不存在时,一律使用defaultHost指定的主机进行处理;因此,defaultHost的值,必须与发动机中的一个主机组件的名称属性值匹配
Host的配置
name属性指定虚拟主机的主机名, unpackWARs指定了是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。 的自动部署和的appBase属性,与主机内的Web应用的自动部署有关;此外,本例中没有出现的xmlBase和deployOnStartup属性,也与网络应用的自动部署有关;
Context的作用
上下文元素代表在特定虚拟主机上运行的一个网络应用。在后文中,提到上下文,应用或网络应用,它们指代的都是网页应用。每个网络应用基于WAR文件,或WAR文件解压后对应的目录,上下文是主机的子容器,每个主机中可以定义任意多的上下文元素
网络应用自动部署
检查的Web应用更新
一个网络应用可能包括以下文件:XML配置文件,WAR包,以及一个应用目录(该目录包含的Web应用的文件结构);其中XML配置文件位于xmlBase指定的目录,WAR包和应用目录位于的appBase指定的目录。
Tomcat的按照如下的顺序进行扫描,来检查应用更新:
A,扫描虚拟主机指定的xmlBase下的XML配置文件
B,扫描虚拟主机指定的的appBase下的WAR文件
C,扫描虚拟主机指定的的appBase下的应用目录
自动部署时,xmlBase下的XML配置文件app1.xml的例子 <上下文docBase =“D:\ LSJ \ app1.war”reloadable =“true”/>
元素静态部署Web应用
Listener
监听器(即监听器)定义的组件,可以在特定事件发生时执行特定的操作;被监听的事件通常是Tomcat的的启动和停止。
监听器需要配置的最重要的属性是类名,该属性规定了监听器的具体实现类,该类必须实现了org.apache.catalina.LifecycleListener接口。
下面依次介绍例子中配置的监听器:
VersionLoggerListener:当Tomcat的启动时,该监听器记录的Tomcat,爪哇和操作系统的信息该监听器必须是配置的第一个监听器。
AprLifecycleListener:Tomcat的启动时,检查APR库,如果存在则加载.APR,即Apache可移植运行时,是Apache的可移植运行库,可以实现高可扩展性,高性能,以及与本地服务器技术更好的集成。
JasperListener:在网络应用启动之前初始化碧玉,碧玉是JSP引擎,把JVM不认识的JSP文件解析成的java文件,然后编译成类文件供JVM使用。
JreMemoryLeakPreventionListener:与类加载器导致的内存泄露有关。
GlobalResourcesLifecycleListener:通过该监听器,初始化
ThreadLocalLeakPreventionListener:。当网络应用因本地线程导致的内存泄露而要停止时,该监听器会触发线程池中线程的更新当线程执行完任务被收回线程池时,活跃线程会一个一个的更新只有当网络应用(即上下文元素)的renewThreadsWhenStoppingContext属性设置为真时,该监听器才有效。
GlobalNamingResources与Realm
第一部分的例子中,发动机组件下定义了境界组件:
境界,可以把它理解成“域”;境界提供了一种用户密码与网络应用的映射关系,从而达到角色安全管理的作用在本例中,域的配置使用的名称为UserDatabase的资源实现而该资源在服务器元素中使用GlobalNamingResources配置:
GlobalNamingResources元素定义了全局资源,通过配置可以看出,该配置是通过读取$ TOMCAT_HOME / conf / tomcat-users.xml实现的
Valve
单词阀的意思是“阀门”,在Tomcat的中代表了请求处理流水线上的一个组件;阀门可以与Tomcat的的容器(发动机,主机或上下文)关联。
1.className:规定了阀的类型,是最重要的属性;本例中,通过该属性规定了这是一个AccessLogValve。
2.directory:指定日志存储的位置,本例中,日志存储在$ TOMCAT_HOME /日志目录下。
3.prefix:指定了日志文件的前缀。
4.suffix:指定了日志文件的后缀通过目录,前缀和后缀的配置,在$ TOMCAT_HOME /日志目录下,可以看到如下所示的日志文件。
localhost_access_log.2018-08-11.txt localhost_access_log.2018-08-12.txt localhost_access_log.2018-08-13.txt
5.pattern:指定记录日志的格式,本例中各项的含义如下:
%h:远程主机名或IP地址;如果有nginx等反向代理服务器进行请求分发,该主机名/IP地址代表的是nginx,否则代表的是客户端。后面远程的含义与之类似,不再解释。 %l:远程逻辑用户名,一律是”-”,可以忽略。 %u:授权的远程用户名,如果没有,则是”-”。 %t:访问的时间。 %r:请求的第一行,即请求方法(get/post等)、uri、及协议。 %s:响应状态,200,404等等。 %b:响应的数据量,不包括请求头,如果为0,则是””-。
10.2.1.22 -- [12/Jul/2018:00:00:00:00 +0800] "GET /mesg/gethello HTTP/1.0" 200 497 nginx的ip 访问时间 请求方法url 协议 响应状态 响应数据量
pattern的配置中,除了上述各项,还有一个非常常用的选项是%D,含义是请求处理的时间(单位是毫秒),对于统计分析请求的处理速度帮助很大。
Host的配置
name属性指定虚拟主机的主机名,一个Engine中有且仅有一个Host组件的name属性与Engine组件的defaultHost属性相匹配;一般情况下,主机名需要是在DNS服务器中注册的网络名,但是Engine指定的defaultHost不需要 unpackWARs true 自动解压war Host的autoDeploy和appBase属性,与Host内Web应用的自动部署有关;此外,本例中没有出现的xmlBase和deployOnStartup属性,也与Web应用的自动部署有关
限制主机访问
有时,可能想限制对Tomcat web应用的访问,比如,希望只有指定的主机或IP地址可以访问应用。这样一来,就只有那些指定的客户端可以访问服务的内容了。为了实现这种效果,Tomcat提供了两个参数供你配置:RemoteHostValve和RemoteAddrValve。 通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/ IP。与之类似的,在Apache的 可以把管理Web应用程序设置成只允许本地访问,设置如下:
目录结构
/ bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 / conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml / doc:存放Tomcat文档 /服务器:包含三个子目录:classes,lib和webapps / server / lib:存放Tomcat服务器所需的各种JAR文件 / server / webapps:存放Tomcat自带的两个WEB应用管理应用和管理应用 / common / lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件 / shared / lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问) / logs:存放Tomcat执行时的日志文件 / src:存放Tomcat的源代码 / webapps中:Tomcat的主要网站发布目录,默认情况下把网络应用文件放于此目录 /工作:存放JSP编译后产生的类文件
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~