Tomcat的配置文件server.xml 中各个域的说明及相关配置
【Tomcat】tomcat8.0基本参数调优配置
【Tomcat】tomcat8.0基本参数调优配置1、优化内核及TCP连接:fs.file-max = 655350 # 系统⽂件描述符总量net.ipv4.ip_local_port_range = 102465535 # 打开端⼝范围net.ipv4.tcp_max_tw_buckets = 2000 # 设置tcp连接时TIME_WAIT个数net.ipv4.tcp_tw_recycle = 1 # 开启快速tcp TIME_WAIT快速回收net.ipv4.tcp_tw_reuse = 1 # 开启TIME_WAIT重⽤net.ipv4.tcp_syncookies = 1 # 开启SYN cookies 当出现syn等待溢出,启⽤cookies来处理,可防范少量的syn攻击net.ipv4.tcp_syn_retries = 2 # 对于⼀个新建的tcp连接,内核要发送⼏个SYN连接请求才决定放弃net.ipv4.tcp_synack_retries = 2 # 这⾥是三次握⼿的第⼆次连接,服务器端发送syn+ack响应这⾥决定内核发送次数net.ipv4.tcp_keepalive_time = 1200 # tcp的长连接,这⾥注意:tcp的长连接与HTTP的长连接不同net.ipv4.tcp_fin_timeout = 15 # 设置保持在FIN_WAIT_2状态的时间net.ipv4.tcp_max_syn_backlog = 20000 # tcp半连接最⼤限制数net.core.somaxconn = 65535 # 定义⼀个监听最⼤的队列数dev_max_backlog = 65535 # 当⽹络接⼝⽐内核处理数据包速度快时,允许送到队列数据包的最⼤数⽬保存退出[root@cloud ~]# sysctl -p # 添加⽣效2、修改Tomcat Connector运⾏模式为apr Tomcat Connector有三种运⾏模式: bio:阻塞IO bio是三种运⾏模式中性能最低第⼀种。
13-02-Tomcat配置文件及注释
13-02-Tomcat配置⽂件及注释<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"><!-- 属性说明port:指定⼀个端⼝,这个端⼝负责监听关闭Tomcat的请求shutdown:向以上端⼝发送的关闭服务器的命令字符串--><Listener className="org.apache.catalina.core.AprLifecycleListener"/><Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/><Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/><Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/><GlobalNamingResources><Environment name="simpleValue" type="ng.Integer" value="30"/><Resource name="UserDatabase" auth="Container"type="erDatabase"description="User database that can be updated and saved"factory="ers.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml"/></GlobalNamingResources><!--每个Service元素只能有⼀个Engine元素.元素处理在同⼀个<Service>中所有<Connector>元素接收到的客户请求--><Service name="Catalina"><!--name:Service服务器的名称--><!--Connector元素:由Connector接⼝定义.<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果.--><Connector port="80" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"/><!-- 属性说明port:服务器连接器的端⼝号,该连接器将在指定端⼝侦听来⾃客户端的请求。
Tomcat域名自定义配置
Tomct多域名绑定和虚拟目录Tomcat采用默认安装,要想tomcat直接绑定多个域名,这里我们需要修改配置文件:Tomcat安装目录下的\conf\server.xml配置可能会遇到问题:将所有ie浏览器关闭在windows命令行窗口下执行:运行cmd输入:netstat -aon|findstr "80"TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448端口被进程号为2448的进程占用,继续执行下面命令:tasklist|findstr "2448"thread.exe 2016 Console 0 16,064 K/view/a6d00814a2161479171128f1.html很清楚,thread.exe占用了80端口System进程结束方法:开始——设置——控制面板——管理工具——服务结束系统服务项:World Wide Web Publishing Serviceselect * from nls_database_parameters;//查询oracle参数server.xml 的修改方式如下:(一)多域名绑定1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成805.0原始:<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false"redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />5.0修改后:<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false"redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />6.0原始:6.0修改后:其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变2.接下来就是重点了原始:<Engine name="Catalina" defaultHost="localhost"><Host name="localhost" appBase="webapps" unpackWARs="true"autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" /></Engine>……<Engine name="Catalina" defaultHost=><Host name="" appBase=="abcapps" unpackWARs="true"autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"<Host name= appBase=="D:\cba" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" /><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" /></Engine>这里解释一下上面的配置Engine 的 dafaultHost :表示访问该tomcat默认进入的主机,注意一定不能是localhost,不然别人通过你的ip访问,就会默认进入tomcat的管理界面.Host 的 name:表示该主机绑定的域名,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host.Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径.按照上面的配置:1.如果我在浏览器中输入http://localhost 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT 下的网站2.如果输入 则访问 C:\Program Files\Apache Software Foundation\Tomcat 5.5\abcapps\ROOT 下的网站3.如果输入 则访问 D:\cba\ROOT 下的网站.注意这里有一个ROOT目录需要创建,我们只要把网站放到相应的ROOT目录下面,即可通过相应域名访问了.这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.这样配置就大功告成了注意:要修改系统盘system->system32-> drivers-> etc下的hosts文件(二)虚拟目录<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><Context path="/cqq" docBase="f:\java\cqqapp" debug="0" reloadable="true" crossContext="true"></Host>其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个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域名或IP地址访问方式配置方法
1、配置www.***.com域名方式访问在Tomcat下面配置域名(如:www.***.com)的时候,同时又不希望客户通过我们网站的IP或者域名访问到Tomcat默认的ROOT,配制方法如下:1、打开Tomcat安装目录下的/conf/server.xml文件2、在server.xml中将原有的<Host name=“localhost“ appBase=“webapps“ ……>修改为<Host name=“您要配置的域名“ appBase=“webapps“……>3、在/conf/Catalina目录下建立目录“<您要配置的域名的名称>”,然后建立ROOT.xml 文件,其格式和/conf/localhost目录下的ROOT.xml一致,但是内容如下:<?xml version='1.0' encoding='utf-8'?><Context displayName="Welcome to 56World!" docBase="D:/workplace/inbuilding" path=""></Context>其中docBase中的内容就是你希望的打开您的域名(www.***.com)的时候映射到的目录和默认的网页(如:index.jsp)4、启动Tomcat服务器,就可以直接敲入域名访问你要访问的地址了。
2、配置ip地址方式访问(不需要项目名)最近遇到一个朋友,他提出配置在tomcat下的项目不要用以往的访问方式”http://200.200.200.135:8080/Test“访问,他想只要输入一个IP地址即可访问。
于是到网上查资料,找到了解决的办法,就是更改tomcat的server.xml文件中的<Host></Host>中的内容,具体修改如下所述:(使用的是Tomcat6.0)。
tomcat 配置host的规则
在 Apache Tomcat 中,可以使用<Host>元素来配置虚拟主机。
虚拟主机允许在单个Tomcat 服务器上托管多个域名或主机名。
以下是关于 Tomcat 中配置虚拟主机的详细规则:
1.在 server.xml 中配置 Host 元素:
要配置虚拟主机,你需要编辑 Tomcat 的server.xml文件。
在该文件中,你可以添加多个<Host>元素,每个元素对应一个虚拟主机的配置。
例如:
2.Host 元素的属性:
–name属性指定虚拟主机的名称,通常是主机名或域名。
–appBase属性指定应用程序基础目录,它是该虚拟主机中部署的应用程序的根目录。
3.添加 Context 元素:
在<Host>元素中,你可以使用<Context>元素来配置特定的 Web 应用程序。
<Context>元素允许你指定上下文路径和应用程序的位置。
例如:
这将在虚拟主机中部署位于appBase目录下的当前应用程序。
4.配置多个虚拟主机:
你可以在server.xml文件中配置多个<Host>元素,每个元素对应一个虚拟主
机。
这允许你在同一 Tomcat 服务器上托管多个域名或主机名。
5.重启 Tomcat 服务器:
一旦你完成了server.xml文件的配置更改,你需要重新启动 Tomcat 服务器,以便让更改生效。
确保在配置虚拟主机时小心谨慎,避免出现冲突或错误配置。
配置完毕后,你可以使用不同的域名或主机名访问同一 Tomcat 服务器上的不同应用程序。
tomcat部署(配置文件)
tomcat部署(配置⽂件)⼀、启动tomcat服务器的⽅式1. 直接到tomcat服务器的bin⽬录下双击startup.bat2. 通过cmd进⼊bin⽬录,输⼊命令startup.bat1. 但这时会出现的问题是,服务器启动程序只是⼀闪⽽过,为什么呢?其实问题就是,没有Java的JDK,我们需要到环境变量配置系统变量JAVA_HOME。
我们都知道,1.5 以上的版本的JDK只需要配置path变量就可以了。
但是如果你想在机器上使⽤tomcat的话,你就必须配置JAVA_HOME,指向JDK的安装位置。
配置好之后我们就可以正常打开tomcat了,双击startup.bat,tomcat正常启动。
启动完成后,我们在浏览器地址栏上输⼊:http://localhost:8080,会得到以下的界⾯⼆、配置环境变量我们需要配置系统变量:ATALINA_BASE:指向tomcat的安装位置CATALINE_HOME:指向tomcat的安装位置Path:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin三、配置tomcat的端⼝号tomcat的默认服务端⼝是8080。
可以通过配置⽂件来改变该服务端⼝,甚⾄通过修改配置⽂件让tomcat同时在多个端⼝提供服务tomcat的配置⽂件都放在conf⽬录下。
使⽤⽆格式⽂本编辑器打开该⽬录下的server.xml⽂件,定位到68⾏处<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />其中,port="8080"就是web应⽤的服务端⼝,将8080改为任意端⼝,建议使⽤1024以上的端⼝,避免与公⽤端⼝冲突。
tomcat各个文件夹的作用
tomcat下有9个目录,分别是bin,common,conf,logs,server,shared,temp,webapps,work 目录,现在对每一目录做介绍。
tomcat根目录在tomcat中叫<CATALINA_HOME>,文章中把tomcat解压后在c:/下。
1.<CATALINA_HOME>/bin:存放各种平台下启动和关闭Tomcat的脚本文件。
其中有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如:SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。
startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。
2.<CATALINA_HOME>/common:在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR?。
3.<CATALINA_HOME>/shared:在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR?。
4.<CATALINA_HOME>/server:在server/webapps目录中,存放Tomcat自带的两个APP-admin 和manager应用,使用来管理Tomcat-web服务用的。
在server/lib目录中,存放tomcat服务器所需要的各,web应用不能访问种jar?。
5.<CATALINA_HOME>/work :Tomcat把各种由jsp生成的servlet文件放在这个目录下。
work这个文件夹下面的东西建议你去看看就可以明白了那是JSP文件编译成.java->.classes6.<CATALINA_HOME>/temp :临时活页夹,Tomcat运行时候存放临时文件用的。
tomcat日志配置详解
这是记录访问者的IP,在日志里是127.0.0.1
%A
这是记录本地服务器的IP,在日志里是192.168.254.108
%b
这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-
%B
看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,没想明白,望知道者告知,我把官方解释贴出来吧Bytes sent, excluding HTTP headers
suffix
这就是后缀名啦,可以改成别的
pattern
这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。
resolveHosts
如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦
还有一些参数:
rotatable
%s
这个是http的状态,我这里返回的是304,咱们经常看见访问某个网页报错误500什么的,那也会返回500
%S
用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
%t
这就是时间啦,好像有一个Common Log Format可以改,不过我没找到
%h
这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了,我的日志里是127.0.0.1
%H
访问者使用的协议,这里是HTTP/1.1
%l
这个也不太清楚,官方也说这个always return '-'官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')
tomcatserver.xml配置详解
tomcatserver.xml配置详解<Server>元素它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接⼝来定义.它包含⼀个<Service>元素.并且它不能做为任何元素的⼦元素.<Server port="8005" shutdown="SHUTDOWN" debug="0">1>className指定实现org.apache.catalina.Server接⼝的类.默认值为org.apache.catalina.core.StandardServer2>port指定Tomcat监听shutdown命令端⼝.终⽌服务器运⾏时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.3>shutdown指定终⽌Tomcat服务器运⾏时,发给Tomcat服务器的shutdown监听端⼝的字符串.该属性必须设置<Service>元素该元素由org.apache.catalina.Service接⼝定义,它包含⼀个<Engine>元素,以及⼀个或多个<Connector>,这些Connector元素共享⽤同⼀个Engine元素<Service name="Catalina"> <Service name="Apache">第⼀个<Service>处理所有直接由Tomcat服务器接收的web客户请求.第⼆个<Service>处理所有由Apahce服务器转发过来的Web客户请求1>className 指定实现org.apahce.catalina.Service接⼝的类.默认为org.apahce.catalina.core.StandardService2>name定义Service的名字<Engine>元素每个Service元素只能有⼀个Engine元素.元素处理在同⼀个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接⼝定义.<Engine name="Catalina" defaultHost="localhost" debug="0">1>className指定实现Engine接⼝的类,默认值为StandardEngine2>defaultHost指定处理客户的默认主机名,在<Engine>中的<Host>⼦元素中必须定义这⼀主机3>name定义Engine的名字在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host><Host>元素它由Host接⼝定义.⼀个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了⼀个虚拟主机.它包含了⼀个或多个Web应⽤.<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">1>className指定实现Host接⼝的类.默认值为StandardHost2>appBase指定虚拟主机的⽬录,可以指定绝对⽬录,也可以指定相对于<CATALINA_HOME>的相对⽬录.如果没有此项,默认为<CATALINA_HOME>/webapps3>autoDeploy如果此项设为true,表⽰Tomcat服务处于运⾏状态时,能够监测appBase下的⽂件,如果有新有web应⽤加⼊进来,会⾃运发布这个WEB应⽤4>unpackWARs如果此项设置为true,表⽰把WEB应⽤的WAR⽂件先展开为开放⽬录结构后再运⾏.如果设为false将直接运⾏为WAR⽂件5>alias指定主机别名,可以指定多个别名6>deployOnStartup如果此项设为true,表⽰Tomcat服务器启动时会⾃动发布appBase⽬录下所有的Web应⽤.如果Web应⽤中的server.xml没有相应的<Context>元素,将采⽤Tomcat默认的Context7>name定义虚拟主机的名字在<Host>元素中可以包含如下⼦元素<Logger>, <Realm>, <Value>, <Context><Context>元素它由Context接⼝定义.是使⽤最频繁的元素.每个<Context元素代表了运⾏在虚拟主机上的单个Web应⽤.⼀个<Host>可以包含多个<Context>元素.每个web应⽤有唯⼀的⼀个相对应的Context代表web应⽤⾃⾝.servlet容器为第⼀个web应⽤创建⼀个ServletContext对象.<Context path="/sample" docBase="sample" debug="0" reloadbale="true">1>className指定实现Context的类,默认为StandardContext类2>path指定访问Web应⽤的URL⼊⼝,注意/myweb,⽽不是myweb了事3>reloadable如果这个属性设为true, Tomcat服务器在运⾏状态下会监视在WEB-INF/classes和Web-INF/lib⽬录CLASS⽂件的改运.如果监视到有class⽂件被更新,服务器⾃重新加载Web应⽤3>cookies指定是否通过Cookies来⽀持Session,默认值为true4>useNaming指定是否⽀持JNDI,默认值为了true在<Context>元素中可以包含如下元素<Logger>, <Realm>, <Resource>, <ResourceParams><Connector>元素由Connector接⼝定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.<Connector port="8080" maxThread="50" minSpareThreads="25"maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /><Connectionport="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />第⼀个Connector元素定义了⼀个HTTP Connector,它通过8080端⼝接收HTTP请求;第⼆个Connector元素定义了⼀个JD Connector,它通过8009端⼝接收由其它服务器转发过来的请求.Connector元素共⽤属性1>className指定实现Connector接⼝的类2>enableLookups如果设为true,表⽰⽀持域名解析,可以把IP地址解析为主机名.WEB应⽤中调⽤request.getRemoteHost⽅法返回客户机主机名.默认值为true3>redirectPort指定转发端⼝.如果当前端⼝只⽀持non-SSL请求,在需要安全通信的场命,将把客户请求转发⾄SSL的redirectPort端⼝HttpConnector元素的属性1>className实现Connector的类2>port设定Tcp/IP端⼝,默认值为8080,如果把8080改成80,则只要输⼊http://localhost/即可因为TCP/IP的默认端⼝是803>address如果服务器有⼆个以上ip地址,此属性可以设定端⼝监听的ip地址.默认情况下,端⼝会监听服务器上所有的ip地址4>bufferSize设定由端⼝创建的输⼊流的缓存⼤⼩.默认值为2048byte5>protocol设定Http协议,默认值为HTTP/1.16>maxThreads设定在监听端⼝的线程的最⼤数⽬,这个值也决定了服务器可以同时响应客户请求的最⼤数⽬.默认值为2007>acceptCount设定在监听端⼝队列的最⼤客户请求数量,默认值为10.如果队列已满,客户必须等待.8>connectionTimeout定义建⽴客户连接超时的时间.如果为-1,表⽰不限制建⽴客户连接的时间JkConnector的属性1>className实现Connector的类2>port设定AJP端⼝号3>protocol必须设定为AJP/1.3。
Tomcat配置及使用..
。
Linux下tomcat的安装使用
3、将sguap-server上传(或拷贝)至以下路径: /usr/local/www/apache-tomcat-uap/webapps/sguap-server。
4、/usr/local/www/apache-tomcat-uap/conf下的server.xml将: <Connector port="8080" protocol="HTTP/1.1"
Linux下tomcat的安装使用 解压安装文件:apache-tomcat-6.0.41.tar.gz,到/usr/local/www/apache-tomcat-portal
现阶段我们在国网实施项目使用到的tomcat都是免安装,只需解压就可以直接使用, 以启明星新门户的安装为讲一下tomcat的使用。
connectionTimeout="20000" redirectPort="8443" /> 修改为 <Connector port="10010" protocol="HTTP/1.1" connectionTimeout="20000
tomcat cachemaxsize设置规则
tomcat cachemaxsize设置规则在Tomcat中,`cachemaxsize` 不是一个直接的配置属性,而是在与缓存有关的一些组件中的一个可能用于设置缓存大小的属性。
以下是一些与缓存相关的配置属性和组件,以及它们的设置规则:1. Tomcat 缓存配置:在Tomcat 的`server.xml` 文件中,你可以配置各种缓存组件,如静态资源缓存、会话缓存等。
这些组件中的一些可能涉及到设置缓存大小的属性。
以下是一些相关的配置示例:```xml<!--示例:静态资源缓存--><Context docBase="/your/web/application" path="/" reloadable="true"><Resources cachingAllowed="true" cacheMaxSize="100000" /></Context>```2. Tomcat 会话管理器配置:如果你使用Tomcat 进行会话管理,那么`Manager` 组件可能包含缓存大小的设置。
以下是一个示例:```xml<!--示例:会话管理器配置--><Manager className="org.apache.catalina.session.PersistentManager"maxIdleBackup="1"><!--可能包含其他与缓存相关的属性--></Manager>```具体的`cacheMaxSize` 的设置规则取决于你的具体需求和应用场景。
一般来说,它表示缓存的最大容量,可以根据应用的大小和性能要求进行调整。
3. 其他组件配置:除了上述的示例之外,还可能有其他组件,如缓存过滤器、类加载器等,它们可能也包含`cacheMaxSize` 相关的属性。
Tomcat--各个目录详解(二)
Tomcat--各个⽬录详解(⼆)Tomcat整体⽬录:⼀、bin⽂件(存放启动和关闭tomcat脚本)其中.bat和.sh⽂件很多都是成对出现的,作⽤是⼀样的,⼀个是Windows的,⼀个是Linux。
① startup⽂件:主要是检查catalina.bat/sh 执⾏所需环境,并调⽤catalina.bat 批处理⽂件。
启动tomcat。
异常:打开可能有闪退的问题。
原因可能有以下两点: 1)缺少环境变量配置,startup会检查你的电脑环境变量是否有JAVA_HOME。
2)已经开启了Tomcat容器,再次开启端⼝号会被占⽤。
.BindException: Address already in use: JVM_Bind② catalina⽂件:真正启动Tomcat⽂件,可以在⾥⾯设置jvm参数。
异常:可能出现内存溢出错误可以考虑修改它 1)ng.OutOfMemoryError: Java heap space Tomcat默认可以使⽤的内存为128MB,在较⼤型的应⽤项⽬中,这点内存是不够的,从⽽导致客户端显⽰500错误。
Windows环境下修改catalina.bat⽂件,在⽂件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m Linux环境下修改catalina.sh⽂件,在⽂件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’ 其中,-Xms设置初始化内存⼤⼩,-Xmx设置可以使⽤的最⼤内存。
2) ng.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM 存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的 Heap区域不同,GC(Garbage Collection)不会在主程序运⾏期对PermGen space进⾏清理,所以如果你的应⽤ 中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进⾏pre compile的 时候。
Tomcat中的Server.xml配置详解
Tomcat中的Server.xml配置详解Tomcat中的Server.xml配置详解Tomcat Server的结构图如下:该⽂件描述了如何启动Tomcat Server<Server><Listener /><GlobaNamingResources></GlobaNamingResources<Service><Connector /><Engine><Logger /><Realm /><host><Logger /><Context /></host></Engine></Service></Server>1、<Server>元素它代表整个容器,是Tomcat实例的顶层元素。
由org.apache.catalina.Server接⼝来定义。
它包含⼀个元素。
并且它不能做为任何元素的⼦元素。
<!-- ⼀个“Server”是⼀个提供完整的JVM的独⽴组件,它可以包含⼀个或多个“Service”实例。
服务器在指定的端⼝上监听shutdown命令。
注意:⼀个“Server”⾃⾝不是⼀个“Container”(容器),因此在这⾥你不可以定义诸如“Valves”或者“Loggers”⼦组件--><!-- 启动Server在端⼝8005处等待关闭命令如果接受到"SHUTDOWN"字符串则关闭服务器-->测试:telnet localhost 8005输⼊:SHUTDOWN结果:关闭tomcat<Server port="8005" shutdown="SHUTDOWN" debug="0">(1)className指定实现org.apache.catalina.Server接⼝的类。
配置Tomcat连接池
配置Tomcat连接池(配置server.xml文件)收藏配置Tomcat连接池:1、配置conf\server.xml,创建DataSource资源,并且为其指定参数;2、在web.xml中引用资源;3、在javabean、servlet中使用资源;server.xml文件内容<!--path="/TomcatDbPools"表示你想用什么样的字符访问站点,即站点的访问方式以/TomcatDbPools结尾例:http://localhost:8080/ TomcatDbPoolsdocBase="TomcatDbPools" 你的组件在什么地方放着没有/则从webapps目录找debug="0" reloadable="true"是固定的--><Context path="/TomcatDbPools" docBase="TomcatDbPools" debug="0" reloadable="true"><!--name 指定资源池的Resource的JNDI的名字给连接池起的名字jdbc/TomcatDbPool1auth:管理权限指定管理Resource的Manager,可以是Container或Applicationtype:指出Resource所属的类名,是什么类型的数据源本例是SQL的--><Resource name="jdbc/TomcatDbPool1" auth="Container" type="javax.sql.DataSource"/><ResourceParams name="jdbc/TomcatDbPool1">指名为哪个连接池配置参数,即为jdbc/TomcatDbPool<!-- 指定DataResource的factory的名字--><parameter><name>factory</name><value>mons.dbcp.BasicDataSourceFactory</value></parameter><!-- 指定连接池中处于活动连接的最大数量0表示不受限制--><parameter><name>maxActive</name><value>100</value></parameter><!--指定空闲连接的最大数量0表示不受限制--><parameter><name>maxIdle</name><value>30</value></parameter><!-- 连接池中处于空闲状态的最大等待的毫秒数,-1表示无限等待--><parameter><name>maxWait</name><value>10000</value></parameter><!-- 连接的用户名和密码--><parameter><name>username</name><value></value></parameter><parameter><name>password</name><value></value></parameter><!-- 驱动程序jdbc桥--><parameter><name>driverClassName</name><value>sun.jdbc.odbc.JdbcOdbcDriver</value></parameter><!-- 数据库的Url --><parameter><name>url</name><value>jdbc:odbc:bookDSN</value></parameter></ResourceParams><!--我们也可以指出多个资源,这样在web.xml中指出引用的是哪个就行了下面的是使用SqlServer2000的驱动来访问数据库前提是要将SqlServer的驱动拷贝到tomcat下的common\lib目录下--><Resource name="jdbc/TomcatDbPool2" auth="Container" type="javax.sql.DataSource"/><ResourceParams name="jdbc/TomcatDbPool2"><!-- 指定DataResource的factory的名字--><parameter><name>factory</name><value>mons.dbcp.BasicDataSourceFactory</value></parameter><!-- 指定连接池中处于活动连接的最大数量0表示不受限制--><parameter><name>maxActive</name><value>100</value></parameter><!--指定空闲连接的最大数量0表示不受限制--><parameter><name>maxIdle</name><value>30</value></parameter><!-- 连接池中处于空闲状态的最大等待的毫秒数,-1表示无限等待--><parameter><name>maxWait</name><value>10000</value></parameter><!-- 连接的用户名和密码--><parameter><name>username</name><value>sa</value></parameter><parameter><name>password</name><value></value></parameter><!-- 驱动程序本地协议连接--><parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter><!-- 数据库的Url --><parameter><name>url</name><value>jdbc:microsoft:sqlserver://localhost\\b:1433;DatabaseName=book</value></parameter></ResourceParams></Context>2、在web.xml中引用资源;<?xml version="1.0" encoding="GB2312"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd"><web-app><welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list><!-- 在此处之处引用的是谁<resource-ref><description>ConnectionPool</description><res-ref-name>jdbc/TomcatDbPool1</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>--><!--我们在server.xml中配置了多个Resource,所以此处要指出来用的是哪个Pool.--> <resource-ref>--资源引用<description>ConnectionPool</description><res-ref-name>jdbc/TomcatDbPool2</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref></web-app>3、在javabean、servlet中使用资源;public void openConnection1(){try{ /*Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");String url="jdbc:odbc:bookDSN";conn=DriverManager.getConnection(url,"",""); *///获取连接的方式变化了(使用连接池)Context context=new InitialContext();if(context==null) {throw new Exception("No such Context");}//java:comp/env/是固定写法jdbc/TomcatDbPool1是serverl.xml中的资源的名字//用context.lookup方法从jdbc/TomcatDbPool1中得到一个数据源DataSourceds=(DataSource)context.lookup("java:comp/env/jdbc/TomcatDbPool1");conn=ds.getConnection();System.out.println("通过tomcat连接池创建连接成功!");}catch(Exception e) {System.out.println(e.getMessage()); }Web.xml配置:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "/j2ee/dtds/web-app_2_2.dtd"><web-app><display-name>XCFI Application</display-name><resource-ref><description>DB Connection</description><res-ref-name>jdbc/my_mssql</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref><session-config><session-timeout>30</session-timeout></session-config><!-- Listeners --><!-- sun add at 2007-01-14 --><listener><listener-class>xcfi.website.SessionCounter</listener-class></listener><welcome-file-list><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list><taglib><taglib-uri>oscache</taglib-uri><taglib-location>/WEB-INF/tld/oscache.tld</taglib-location></taglib><servlet><servlet-name>getimage</servlet-name><servlet-class>xcfi.utily.getimage</servlet-class></servlet><servlet><servlet-name>show_product_image</servlet-name><servlet-class>show_product_image</servlet-class></servlet><servlet><servlet-name>show_mews_images</servlet-name><servlet-class>xcfi.utily.show_mews_images</servlet-class> </servlet><servlet-mapping><servlet-name>getimage</servlet-name><url-pattern>/servlet/getimage</url-pattern></servlet-mapping><servlet-mapping><servlet-name>getimage</servlet-name><url-pattern>/servlet/getimage.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>show_product_image</servlet-name><url-pattern>/servlet/show_product_image</url-pattern></servlet-mapping><servlet-mapping><servlet-name>show_product_image</servlet-name><url-pattern>show_product_image.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>show_mews_images</servlet-name><url-pattern>/servlet/show_mews_images</url-pattern></servlet-mapping><!--<error-page><error-code>404</error-code><location>/index.jsp</location></error-page><error-page><error-code>500</error-code><location>/index.jsp</location></error-page>--></web-app>关于Tomcat与MySQL连接池问题的详解(2008-10-23 14:54:00)标签:tomcat java it分类:J2EE研究了一天,终于有所收获,希望对大家有所帮助。
Tomcat配置说明
web.xml文件详解一、web.xml文件介绍1.web.xml文件的作用web.xml主要用来配置Filter、Listener、Servlet等。
但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。
2.WEB容器的加载过程WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。
在web.xml文件中最好按照这种顺序配置这些元素,以兼容较低版本的Tomcat。
3.WEB容器的启动过程WEB容器启动时,加载过程顺序如下:1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3.容器将<context-param>转换为键值对,并交给servletContext。
4.容器创建<listener>中的类实例,创建监听器。
二、web.xml配置元素1.<web-app>根元素web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个web.xml使用的是哪个模式文件。
其它的元素都放在<web-app></web-app>之中,<web-app>是根节点。
<web-app version="3.0"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"></web-app>2.<icon>Web应用图标指出IDE和GUI工具用来表示Web应用的大图标和小图标。
server.xml的关键参数配置
Tomcat 服务器server.xml的关键参数配置说明:以下文字均以tomcat5.0.30为例进行。
1,配置tomcat服务器访问端口,只需配置Connector的port端口即可。
Tomcat默认为8080,现修改port参数值为80。
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --><Connector port="80"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"debug="0" connectionTimeout="20000"disableUploadTimeout="true" URIEncoding="GBK"/>2,配置tomcat支持URL中文参数,只需添加Connector的URIEncoding参数即可,默认情况下该参数未被配置。
要支持URL参数支持中文,加上URIEncodin g=”GBK”就行了(见1中附代码最后一行)。
3,配置新的webApp:找到host尾标记</Host>,插入新的context即可。
如:(1)<Context path="" docBase="ROOT" debug="0"/>若要支持数据库(以SQL Server为例),则为:(2)<Context path="/xkb" docBase="F:\XKB6\webApp" debug="5" reloadable="true" crossContext="true"><Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/><Resource name="jdbc/SqlServerDB" auth="Container" type="javax.sql.DataSource"/><ResourceParams name="jdbc/SqlServerDB"><parameter><name>factory</name><value>mons.dbcp.BasicDataSourceFactory</value></parameter><!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit.--><parameter><name>maxActive</name><value>50</value></parameter><!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit.--><parameter><name>maxIdle</name><value>20</value></parameter><!-- Maximum time to wait for a dB connection to become available in ms, in this example 0.5 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --><parameter><name>maxWait</name><value>500</value></parameter><!-- msSQL dB username and password for dB connections --><parameter><name>username</name><value>sa</value></parameter><parameter><name>password</name><value>wangnewton</value></parameter><!-- Class name for SQLServer2000 JDBC driver --><parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter><!-- The JDBC connection url for connecting to your MS SQL Server dB.The autoReconnect=true argument to the url makes sure that the mm.Sql Server JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours.--><parameter><name>url</name><value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=XKBCourse</value><!--must use & not use & --></parameter></ResourceParams></Context>tomcat5.5.x 配置记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tomcat的配置文件server.xml 中各个域的说明及相关配置2007-04-20 12:42<Server>元素它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素.<Server port="8005" shutdown="SHUTDOWN" debug="0">1>className指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置<Service>元素该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素<Service name="Catalina"><Service name="Apache">第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求.第二个<Service>处理所有由Apahce服务器转发过来的Web客户请求1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService2>name定义Service的名字<Engine>元素每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.<Engine name="Catalina" defaultHost="localhost" debug="0">1>className指定实现Engine接口的类,默认值为StandardEngine2>defaultHost指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机3>name定义Engine的名字在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host><Host>元素它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">1>className指定实现Host接口的类.默认值为StandardHost2>appBase指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps3>autoDeploy如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用4>unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件5>alias指定主机别名,可以指定多个别名6>deployOnStartup如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat 默认的Context7>name定义虚拟主机的名字在<Host>元素中可以包含如下子元素<Logger>, <Realm>, <Value>, <Context><Context>元素它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个ServletContext对象.<Context path="/sample" docBase="sample" debug="0" reloadbale="true">1>className指定实现Context的类,默认为StandardContext类2>path指定访问Web应用的URL入口,注意/myweb,而不是myweb了事3>reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用3>cookies指定是否通过Cookies来支持Session,默认值为true4>useNaming指定是否支持JNDI,默认值为了true在<Context>元素中可以包含如下元素<Logger>, <Realm>, <Resource>, <ResourceParams>Connector元素由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /><Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.Connector元素共用属性1>className指定实现Connector接口的类2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true3>redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口HttpConnector元素的属性1>className实现Connector的类2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost 即可因为TCP/IP的默认端口是803>address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务器上所有的ip地址4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte5>protocol设定Http协议,默认值为HTTP/1.16>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为2007>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间JkConnector的属性1>className实现Connector的类2>port设定AJP端口号3>protocol必须设定为AJP/1.3经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题,于是总结了一下如何tomcat下配置jsp、servlet和ben,希望对那些初学者有所帮助。
第一步:下载j2sdk和tomcat:到sun官方站点(/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.4.2 Documentation,然后到tomcat 官方站点(/dist/jakarta/tomcat-4/)下载tomcat(下载最新4.1.x 版本的tomcat);第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后按默认设置进行安装即可。