Tomcat配置详解
1.Tomcat目录
bin #存放启动和关闭tomcat脚本; conf #存放不同的配置文件 doc #存放tomcat文档 lib/japser/common #存放tomcat运行时需要的库文件(JARS); logs #存放tomcat执行时的log文件; src #存放tomcat源代码; webapps #tomcat的主要web发布目录; work #存放jsp编译后产生的class文件;
2. server.xml配置文件
<Server> #tomcat的实例主机 <Service> #用来设定连接方式(http和ajp)的一些配置; <Engine> #tomcat容器引擎(连接器的配置、虚拟主机) <Host> #虚拟主机的参数; </Host> </Engine> </Service> </server><?xml version='1.0' encoding='utf-8'?>
#配置文件以xml格式 ,版本1.0,字符集urf-8格式 <Server port="8005" shutdown="SHUTDOWN"> #管理tomcat的端口
#prot 指定一个端口,这个端口负责监听关闭tomcat的请求;
#shutdown 指定向端口发送的命令字符串<Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> #上述Listener,Tomcat监听器。<GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> #对应jvm 内置数据库(jdbc)的配置<Service name="Catalina">
#Servuce name 指定service的名字; #Service下面有多个Connector和一个Engine。这里默认的Service名字为Catalina,下面有两个Connector:Http和AJP。 <Connector port="8080" protocol="HTTP/1.1" #connertor表示客户端和service之间的连接 connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
minProcessors #服务器启动时创建的处理请求的线程数;
maxprocessors #最大可以创建的处理请求的线程数;
enableLookups #如果为true,则可以通过调用request.getRemoteHost()进行DNS查询,得到远程客户端的实际主机名;
#如果为false,则不进行DNS查询,而是直接返回其ip地址
connectionTimeout #指定超时的时间数,以毫秒为单位;
redirectPort #指定服务器正在处理http请求时,收到一个SSL传输请求后 重定向的端口号;
acceptCount #指定所有可以使用的处理请求的线程数都被使用时,可以放到处理列队中的请求数,超过这个数的请求不予处理;<Engine name="Catalina" defaultHost="localhost"> #Engine(表示指定service中的请求处理机,接收和处理来自Connector的请求): #defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的,设定tomcat的连接器。 <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> #host (表示一个虚拟主机): #name 指定主机名 #appBase 应用程序基本目录,即存放应用程序的目录 #unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序 ; #autoDeploy 默认为true,表示如果有新的WEB应用放入appBase 并且Tomcat在运行的情况下,自动载入应用<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" #className 指定logger使用的类名,此类必须实现org.apache.cache.catalina.Logger接口 prefix="localhost_access_log" suffix=".txt" #prefix 指定log文件的前缀 #suffix指定log文件的后缀 pattern="%h %l %u %t "%r" %s %b" /> #common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,http响应代码,发送的字节数。combined方式比common方式记录的值更多; #Tomcat日志格式 %l #远程逻辑用户名,一律是”-”,可以忽略。 %u #授权的远程用户名,如果没有,则是”-”。 %t #访问的时间。 %r #请求的第一行,即请求方法(get/post等)、uri、及协议。 %s #响应状态,200,404等等。 %b #响应的数据量,不包括请求头,如果为0,则是””-。