tomcat服务器文档
tomcat配置文件详解

tomcat配置文件详解(一):目录结构tomcat的目录结构如下:目录名简介bin 存放启动和关闭tomcat脚本conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork 存放jsp编译后产生的class文件webapp 存放应用程序示例,以后要部署的应用程序也要放到此目录logs 存放日志文件lib/japser/common 这三个目录主要存放tomcat所需的jar文件(二):server.xml配置简介下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档元素名属性解释server port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown 指定向端口发送的命令字符串service name 指定service的名字Connector (表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors 服务器启动时创建的处理请求的线程数maxProcessors 最大可以创建的处理请求的线程数enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理connectionTimeout指定超时的时间数(以毫秒为单位)Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的Context (表示一个web应用程序,通常为WAR文件,关于WAR 的具体信息见servlet规范) docBase 应用程序的路径或者是WAR文件存放的路径path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序host (表示一个虚拟主机) name 指定主机名appBase 应用程序基本目录,即存放应用程序的目录unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR 文件中运行应用程序Logger (表示日志,调试和错误信息) className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口prefix 指定log文件的前缀suffix 指定log文件的后缀timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt Realm (表示存放用户名,密码及role的数据库) className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样) className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。
Tomcat安装及安全配置文档

Tomcat安装及安全配置文档目录1. Tomcat安装 (3)1.1 jdk安装及测试 (3)1.2 Tomcat安装配置 (5)1.3 Tomcat Windows服务启动配置 (5)2. Tomcat中添加admin模块 (7)3. 配置Tomcat服务器支持HTTPS (8)3.1 生成证书 (8)3.2 配置Tomcat (9)3.3 Https访问 (9)4.如何在一台机子上启动两个TOMCAT (9)5.Windows平台下tomcat安全设置 (10)6.Linux下Tomcat配置 (11)6.1 所需的软件包 (11)6.2 安装所需要软件 (11)6.3 设置环境变量 (11)6.4 编译生成mod_webapp.so (12)6.5 独立环境的测试 (12)6.6 整合安装设置 (13)6.7 整合测试 (13)1.Tomcat安装1.1 jdk安装及测试第一步:下载jdk和tomcat。
第二步:安装和配置你的jdk和tomcat:执行jdk和tomcat的安装程序,然后设置按照路径进行安装即可。
安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的jdk安装在c:\jdk1.6):1.新建系统环境变量中新建JA V A_HOMEJA V A_HOME=c:\jdk1.62.系统环境变量中新建”ClassPath”ClassPath=.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径)3.在系统Path中添加Java的bin路径path=%JA V A_HOME%\bin打开cmd.exe,运行java -version指令,无错误显示,则表示jdk安装配置成功。
之后,可以运行javac指令。
Tomcat 7 SSL配置文档(https)

Tomcat 7.0 SSL配置(https)
1.Java key tool 方式配置
1)确保系统环境变量中的path变量已经添加java目录里的bin目录
2)打CMD命令行窗口,输入以下命令:keytool -v -genkey -alias tomcat -keyalg RSA
-keystore d:/tomcat.keystore -validity 36500
注:这里的tomcat、tomcat.keystore名字可以自定义,d:/tomcat.keystore
是文件保存位置,36500表示证书的有效期是36500天大概100年。
3)将会提示输入两次密码(这里我输入的是tomcat)
4)然后要一个个提示输入信息,任意输入即可
5)输入完后进行确认:输入y即可
6)然后会提示输入这个证书的密码和keystore的密码相同,按回车就行了,
这里直接回车就行了。
7)完成后到文件保存位置复制文件放tomcat主目录里的bin目录下
8)返回到tomcat主目录,进入conf目录,编辑service.xml文件
9)找到下图位置,把原本注释着的<Connector……的注释解开或复制一份
放在下面,并添加keystoreFile(证书文件位置),keystorePass(证书密码)
10)配置完成,启动服务器测试,到bin目录打开tomcat7.exe
11)打开浏览器访问https://localhost:8443,能够进入tomcat的首页就是成功
了。
12)。
tomcat配置手册

以下部署方式都是针对tomcat5.0以上版本。
Tomcat4中的Manager和Admin管理工具其实就是利用它来部署的。
在Tomcat5中提出了Context descriptor这个概念,且为其配置了一个专有目录,而不像Tomcat4那样大杂烩一般地放置在$appBase目录下。
Context descriptor是一个只包含Context元素的xml格式的部署文件,其中Context元素与server.xml中的Context元素配置相同。
对于一个给定的主机,Context descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下面。
Tomcat5默认安装时,在$CATALINA_HOME/conf/Catalina/localhost目录中有admin.xml和manager.xml,是两个管理工具的部署描述符文件。
而这两个文件在Tomcat4中是放置在$CATALINA_HOME/webapps目录下面的。
使用方法:(1)在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下新建xxx.xml文档(2)在xxx.xml文档中配置如下<Context docBase="${catalina.home}/server/webapps/host-manager"privileged="true" antiResourceLocking="false" antiJARLocking="false"> </Context>注:docBase也可以设置为[eclipse的workplace]/[project]/webroot静态部署是指在Tomcat运行之前就把相关的Web应用程序放置到合适的目录,在Tomcat启动的时候自动来部署这些应用程序。
Tomcat配置文件详解

Tomcat配置⽂件详解打开Tomcat的配置⽬录,我们会发现下⾯的配置⽂件:server.xml:Tomcat的主配置⽂件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;web.xml:遵循Servlet规范标准的配置⽂件,⽤于配置servlet,并为所有的Web应⽤程序提供包括MIME映射等默认配置信息;context.xml:所有host的默认配置信息;logging.properties:⽇志相关配置;tomcat-users.xml:Realm认证时⽤到的相关⾓⾊、⽤户和密码等信息;Tomcat⾃带的manager默认情况下会⽤到此⽂件;在Tomcat中添加/删除⽤户,为⽤户指定⾓⾊等将通过编辑此⽂件实现;catalina.policy:Java相关的安全策略配置⽂件,在系统资源级别上提供访问控制的能⼒,以安全模式启动Tomcat会使⽤这个配置catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此⽂件的相关设置;jaspic-providers.xml:⽤户认证配置⽂件这篇博客就来介绍下这⼏个配置⽂件的作⽤,以及常⽤的配置选项。
server.xml配置server.xml是Tomcat的主配置⽂件,可以对Service, Connector, Engine, Realm, Valve, Hosts等主组件进⾏相关配置。
<!-- port: 接收shutdown指令的端⼝,默认仅允许通过本机访问,默认为8005;shutdown:发往此Server⽤于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;使⽤⽅式:telnet localhost 8005,输⼊SHUTDOWN即可关闭tomcat如果你不配置这两个属性,Tomcat的这种关闭机制还是会运⾏的。
tomcat性能测试方案

Tomcat性能测试方案1. 简介本文档旨在提供一个针对Tomcat服务器进行性能测试的方案。
性能测试对于一个Web服务器的运行非常重要,可以帮助评估服务器在大负载情况下的性能表现。
通过性能测试,可以发现系统的瓶颈,并采取相应措施进行优化,以提高系统的响应能力和稳定性。
2. 测试环境搭建2.1 安装和配置Tomcat首先,需要在测试机器上安装Tomcat服务器。
可以从Apache Tomcat官方网站下载最新的Tomcat版本并按照官方文档进行安装和配置。
2.2 准备测试数据在进行性能测试之前,需要准备一些测试数据,以模拟实际的负载情况。
可以使用一些自动生成数据的工具,如Apache JMeter或Gatling,来生成HTTP请求。
2.3 配置服务器参数为了模拟真实场景下的负载,需要对Tomcat服务器的一些参数进行适当配置。
以下是一些常见的配置项:•最大线程数:调整Tomcat服务器的最大线程数,以适应不同负载情况。
•连接超时时间:设置客户端连接服务端的超时时间。
•缓冲区大小:调整网络缓冲区的大小,以优化数据传输性能。
•数据库连接池:配置数据库连接池的参数,如连接数、最大等待时间等。
3. 性能测试方法3.1 负载压力测试负载压力测试是最常见的性能测试方法之一,它通过逐渐增加虚拟用户数来模拟真实场景下的负载情况。
可以使用Apache JMeter等工具创建一个负载测试计划,并设置不同的请求量和并发用户数,然后监测服务器的响应时间和吞吐量。
3.2 稳定性测试稳定性测试旨在评估服务器在长时间运行和持续高负载条件下的稳定性。
可以通过设置不断增加的并发用户数,并保持一定时间的负载压力来进行稳定性测试。
在测试过程中,需要监测服务器的CPU、内存和磁盘IO等性能指标,并检查服务器是否出现内存泄漏等问题。
3.3 各项指标的统计和分析在性能测试过程中,需要对各项指标进行定期的统计和分析。
可以使用工具保存性能测试结果,并生成相应的图表和报告,以便于更直观地了解服务器的性能表现。
Tomcat简介

Tomcat简介Tomcat是⼀款我们平时开发过程中最常⽤到的Servlet容器。
本系列博客会记录Tomcat(以Tomcat 7为列)的整体架构、核⼼组件、IO线程模型、请求在Tomcat 内部的流转过程以及⼀些Tomcat调优的相关知识点。
⼒求能达到以下⼏个⽬的:更加熟悉Tomcat的⼯作机制,⼯作中遇到Tomcat相关问题能够快速定位,从源头来解决;对于⼀些⾼并发场景能够对Tomcat进⾏调优;通过对Tomcat源码的分析,吸收⼀些Tomcat的设计的理念,应⽤到⾃⼰的软件开发过程中。
1. 什么是Tomcat是⼀款Apache下⾯的开源的Servlet容器,实现了对Servlet和JSP规范的⽀持。
另外 Tomcat 本⾝内含了⼀个 HTTP 服务器,所以也可以被当作⼀个 Web 服务器来使⽤。
但是Tomcat作为⼀个Web服务器,它对静态资源的处理能⼒要⽐Apache或者Nginx这类的Web服务器差很多,所以我们经常将Apache和Tomcat(或者是Nginx和Tomcat)组合使⽤,Apache来充当Web服务器处理静态资源的请求,Tomcat充当Servlet容器来处理动态请求。
Web服务器和应⽤服务器Web服务器,是指⼀台在互联⽹上具有独⽴IP地址的⾼性能计算机,可以向互联⽹上的⽤户提供“WWW(万维⽹)、Email(电⼦邮件)和FTP(⽂件传输)”等各种互联⽹服务。
根据Web服务器提供的服务类型的不同,Web服务器⼜可以分为Http服务器,Email服务器和FTP服务器等。
⼀般的Web服务器只提供页⾯浏览,⽂件下载和邮件等服务。
如果要产⽣⼀些动态的响应,Web服务器⼀般不会⾃⼰处理,⽽是会委托给⼀些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets和ASP(Active Server Pages)等脚本。
这些能处理动态响应的服务器就称为应⽤服务器。
Tomcat服务器入门超详细教程

Tomcat服务器⼊门超详细教程⽬录⼀,Tomcat的⼀些概念–1,服务器–2,web服务器–3,Tomcat服务器⼆,使⽤Tomcat–1,下载安装–2,启动&关闭–3,测试三,Tomcat⽬录结构–1,核⼼⽬录–2,修改默认端⼝号8080四,访问⾃⼰的项⽬资源–1,在webapps中添加⾃⼰简单的项⽬–2,测试–3,⼀个完整的web应⽤结构五,在IDEA中整合Tomcat–1,操作如下图–2,测试⼀,Tomcat的⼀些概念–1,服务器服务器:分为服务器硬件和服务器软件。
在硬件服务器(其实就是⼀台计算机)上安装了服务器软件,才可以对外提供服务。
1,硬件: 通常是指在互联⽹上具有独⽴IP的计算机,通常配置⽐较⾼。
⽐如我们⾃⼰的计算机也可以作为服务器使⽤(只不过配置较低)2,软件:就是⼀个计算机程序,⽐如MySQL服务器软件,tomcat服务器软件。
服务器软件分为很多类型,⽐如:ftp服务器,数据库服务器,邮件服务器,web服务器软件等–2,web服务器通过浏览器访问的⼀段计算机程序,服务器收到你的访问请求时,进⾏处理,并做出响应。
–3,Tomcat服务器Tomcat是Apache 软件基⾦会(Apache Software Foundation)的Jakarta 项⽬中的⼀个核⼼项⽬,因为Tomcat 技术先进、性能稳定,⽽且免费,因⽽深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为⽐较流⾏的Web 应⽤服务器.Tomcat 服务器是⼀个免费的开放源代码的Web 应⽤服务器,属于轻量级应⽤服务器,在中⼩型系统和并发访问⽤户不是很多的场合下被普遍使⽤,是开发和调试JSP 程序的⾸选。
对于⼀个初学者来说,可以这样认为,当在⼀台机器上配置好Apache 服务器,可利⽤它响应HTML(标准通⽤标记语⾔下的⼀个应⽤)页⾯的访问请求。
实际上Tomcat是Apache 服务器的扩展,但运⾏时它是独⽴运⾏的,所以当你运⾏tomcat 时,它实际上作为⼀个与Apache 独⽴的进程单独运⾏的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、配置用户在tomcat-users.xml加入下面的role,再创建一个user,重启服务器输入下面创建的用户名和密码就可以进入管理页面了<!--对应第二个按钮权限--><role rolename="manager-gui"/><!--对应第三个按钮权限--><role rolename="admin-gui"/><user username="admin" password="admin" roles="manager-gui,admin-gui"/>注意:在localhost:8080页面下,如果一旦点击三个按钮输入过用户名,密码,localhost:8080页面会记住输入的用户名和密码,如果第一次输入的用户名密码没有manager-gui、admin-gui权限的话,会弹出拒绝页面,再次进入localhost:8080页面,点击三个按钮,会默认帮你输入之前的用户名和密码,仍然会弹出拒绝页面,要想进入管理页面,必须在之前输入的用户下加入manager-gui、admin-gui权限<user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>第一个按钮查看服务器状态第二个按钮管理服务器上部署的应用,页面上有start,stop按钮可以启动和关闭web project;还可以进行项目部署:在myeclipse的对应项目上右击/Export 在弹出的对话框中选择JavaEE/WARfile(MyEclipse)将该项目导入到某个位置(不妨是桌面),进入Tomcat 管理页面(http://localhost:8080)点击ManagerApp,进入管理应用界面,在WAR fileto deploy(如下图:)选择刚才到处的WAR文件即可,然后就可以在上面的应用列表中看到自己刚部署的项目。
第三个按钮管理主机界面二、应用管理1、tomcat页面JVM参数列表JVM区域总体分两类,heap区和非heap区。
heap区又分为:- Eden Space(伊甸园)、- Survivor Space(幸存者区)、- Old Gen(老年代)。
非heap区又分:- Code Cache(代码缓存区);- Perm Gen(永久代);- Jvm Stack(java虚拟机栈);- Local Method Statck(本地方法栈);下面我们对每一个内存区域做详细介绍。
Eden Space字面意思是伊甸园,对象被创建的时候首先放到这个区域,进行垃圾回收后,不能被回收的对象被放入到空的survivor区域。
Survivor Space幸存者区,用于保存在eden space内存区域中经过垃圾回收后没有被回收的对象。
Survivor有两个,分别为To Survivor、 From Survivor,这个两个区域的空间大小是一样的。
执行垃圾回收的时候Eden区域不能被回收的对象被放入到空的survivor(也就是To Survivor,同时Eden区域的内存会在垃圾回收的过程中全部释放),另一个survivor (即From Survivor)里不能被回收的对象也会被放入这个survivor(即To Survivor),然后To Survivor 和 From Survivor的标记会互换,始终保证一个survivor是空的。
这里写图片描述Eden Space和Survivor Space都属于新生代,新生代中执行的垃圾回收被称之为Minor GC (因为是对新生代进行垃圾回收,所以又被称为Young GC),每一次Young GC后留下来的对象age加1。
注:GC为Garbage Collection,垃圾回收。
Old Gen老年代,用于存放新生代中经过多次垃圾回收仍然存活的对象,也有可能是新生代分配不了内存的大对象会直接进入老年代。
经过多次垃圾回收都没有被回收的对象,这些对象的年代已经足够old了,就会放入到老年代。
当老年代被放满的之后,虚拟机会进行垃圾回收,称之为Major GC。
由于Major GC除并发GC外均需对整个堆进行扫描和回收,因此又称为Full GC。
heap区即堆内存,整个堆大小=年轻代大小 + 老年代大小。
堆内存默认为物理内存的1/64(<1GB);默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以通过MinHeapFreeRatio参数进行调整;默认空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制,可以通过MaxHeapFreeRatio参数进行调整。
下面我们来认识下非堆内存(非heap区)Code Cache代码缓存区,它主要用于存放JIT所编译的代码。
CodeCache代码缓冲区的大小在client模式下默认最大是32m,在server模式下默认是48m,这个值也是可以设置的,它所对应的JVM参数为ReservedCodeCacheSize 和 InitialCodeCacheSize,可以通过如下的方式来为Java程序设置。
-XX:ReservedCodeCacheSize=128m1CodeCache缓存区是可能被充满的,当CodeCache满时,后台会收到CodeCache is full的警告信息,如下所示:“CompilerThread0” ng.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space?注:JIT编译器是在程序运行期间,将Java字节码编译成平台相关的二进制代码。
正因为此编译行为发生在程序运行期间,所以该编译器被称为Just-In-Time编译器。
Perm Gen全称是Permanent Generation space,是指内存的永久保存区域,因而称之为永久代。
这个内存区域用于存放Class和Meta的信息,Class在被 Load的时候被放入这个区域。
因为Perm里存储的东西永远不会被JVM垃圾回收的,所以如果你的应用程序LOAD很多CLASS的话,就很可能出现PermGen space错误。
默认大小为物理内存的1/64。
2、tomcat运行JVM参数修改1、修改启动时内存参数、并指定JVM时区(在Windows Server 2008 下时间少了8个小时):在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:Windows下,在catalina.bat最前面:set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;一定加在catalina.bat最前面。
Linux下,在catalina.sh最前面增加:JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"注意:前后二者区别,有无set,有无双引号。
3、tomcat线程池参数修改首先。
打开/conf/server.xml,增加<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。
然后,修改<Connector ...>节点,增加executor属性,如:<Connector executor="tomcatThreadPool"port="80"protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="300"connectionTimeout="60000"keepAliveTimeout="15000"maxKeepAliveRequests="1"redirectPort="443"....../>maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程;acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。
connnectionTimeout:网络连接超时,单位:毫秒。
设置为0表示永不超时,这样设置有隐患的。
通常可设置为30000毫秒。
enableLookups:是否允许DNS查询注意:可以多个connector公用1个线程池。