注意:Tomcat配置文件中(即server.xml文件)不能出现中文,否则服务是无法启动的。
<!-- Server中的port监听关闭tomcat的请求,shutdown指定向端口发送的命令串--> <Server port="8005" shutdown="SHUTDOWN" debug="0"> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/> <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"> </Resource> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <!--value与Logger差不多prefix和suffix解释一样,className指定value使用的类名如:org.apache.catalina.values.AccessLogValve类可以记录应用程序的访问信息,directory指定log 文件存放位置,pattern有两值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。 combined方式比common记录更多--> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> </GlobalNamingResources> <Service name="Catalina"> <!-- Connector中的port创建服务器端的端口号,此端口监听用户端的请求 maxThreads最大可以创建请求的线程数 minSpareThreads服务启动时创建的处理请求的进程数 enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址 redirectPort指定服务器正在处理http请求时收到一个SSL传输请求后重定向的端口号 acceptCount指定当处理请求线程都被使用时,可以放入处理队列的数目,超出将不进行处理 connectionTimeout指定超时的时间数(毫秒)--> <Connector port="80" protocol="HTTP/1.1" maxThreads="200" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8444" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" /> <!--Engine指定缺省的处理请求主机名,需要有一个与host元素的name属性一致--> <Engine name="Catalina" defaultHost="localhost" debug="0"> <!--logger中表示日志信息className为指定logger使用的类名此类必须实现 org.apache.catalina.Logger接口prefix指定log文件的前缀,suffix指定后缀,timestamp如果为true 则log文件名中加入时间--> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <!--Realm存放用户名密码及role数据库,className指定Realm使用的类名必须实现org.apache.catalina.Realm接口--> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase"/> <!--host中name是指定的主机名或ip,appBase应用程序目录,unpackWARs如果为true则会自动解压war文件直接运行否则不解压--> <Host name="example" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>www.example.com</Alias> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> <Context path="" docBase="/home/tomcat/apache-tomcat-7.0.47/webapps/web" reloadable="true" caseSensitive="false" debug="0"></Context> </Host> <Host name="example1" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>www.example1.com</Alias> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> <!--Context一个web应用程序通常为war文件,关于war的具体信息见servlet规范,docBase应用程序的路径或者war 文件的存放路径,path表示此web程序的url前缀 example1/admin,reloadable如果为true,Tomcat会自动检测应用程序的变化,自动装载新的应用程序,那么改变代码将不用再次重新启动tomcat--> <Context path="/admin" docBase="/home/tomcat/apache-tomcat-7.0.47/webapps/web-admin" reloadable="true" caseSensitive="false" debug="0"></Context> </Host> </Engine> </Service> </Server>