专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 全面解析常用Tomcat服务器配置

全面解析常用Tomcat服务器配置

更新时间:2020-12-08 17:37:55 来源:动力节点 浏览1103次

Tomcat 服务器作为当下最流行的免费的开放源代码的Web 应用服务器之一,是开发和调试JSP 程序的首选。然而对于一个初学者来说,在一台机器上配置好Tomcat服务器的难度还是不低的,本文就来全面解析常用Tomcat服务器配置,为大家配置Tomcat服务器提供一点点便捷。

下面介绍Tomcat服务器常用7个配置,其他的配置文件基本不需要我们掌握,也不影响Tomcat服务器的正常运行。

 

 1.目录结构

 /bin:脚本文件目录。

 /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。

 /conf:存放配置文件,最重要的是server.xml。

 /logs:存放日志文件。

 /server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEB APP都不可见(使用Catalina类加载器加载)。

 /shared/lib:仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类加载器加载)。

 /temp:Tomcat运行时候存放临时文件用的。

 /webapps:web应用发布目录。

 /work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。

 

 2.配置文件

 server.xml:主要的配置文件。

 web.xml:缺省的web app配置,WEB-INF/web.xml会覆盖该配置。

 server.xml配置

 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规范)标签

 path:表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****。

 debug:与这个Engine关联的Logger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。

 host(表示一个虚拟主机)标签

 name:指定主机名。。

 Logger(表示日志,调试和错误信息)标签

 className:指定logger使用的类名,此类必须实现org.apache.catalina.Logger接口。

 

 3 .配置虚拟目录

 1)直接部署到webapps目录下面访问。

 2)修改conf/server.xml文件。

 3)当项目没有放在webapps目录下时,可以在conf/Catalina/localhost新建一个XXX.XML文件。里面加入<Context docBase="E:webdemo" debug="0" reloadable="true" />。

 

 4 .配置连接数

 maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

 acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

 minSpareThreads:Tomcat初始化时创建的线程数。

 maxSpareThreads:一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

 enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false

 connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。默认可设置为20000毫秒。

 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

 

 5.配置内存大小

 修改bin/catalina.bat中的set CATALINA_OPTS=-Xms64m -Xmx128m。

 Xms指最小内存,Xmx指最大内存。

 

 6.安全配置

 1)将<Server port="8005" shutdown="SHUTDOWN">SHUTDOWN修改为其他一些字符串。否则就容易被人给停止掉了。


 2)对应tomcat3.1中,屏蔽目录文件自动列出

 修改conf/web.xml中的

    <servlet>

         <servlet-name>default</servlet-name>

         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

         <init-param>

             <param-name>debug</param-name>

             <param-value>0</param-value>

         </init-param>

         <init-param>

             <param-name>listings</param-name>

             <param-value>true</param-value><!-- 改成false -->

         </init-param>

         <load-on-startup>1</load-on-startup>

     </servlet>

 

 3)访问日志设置

 在server.xml中加入

 <Valve className="org.apache.catalina.valves.AccessLogValve"

                  directory="logs"  prefix="localhost_access_log." suffix=".txt"

                  pattern="common" resolveHosts="false"/>

 这样访问日志会记录到Logs中。


 4)修改用户名、密码

 conf/tomcat-users.xml


 5)屏蔽后台管理入口

 方法一:从控制用户和权限着手。废掉要管理权限的用户就可以了。

 方法二:将conf/Catalina/localhost/manager.xml改名。


 6)配置403,404,500错误页面

 默认情况下,报出HTTP错误的时候会暴露tomcat版本号。如果不想暴露的话,就需要重新定义错误跳转页面。

 <error-page>

  <error-code>401</error-code>

  <location>/401.jsp</location>

 </error-page>

 <error-page>

  <error-code>404</error-code>

  <location>/404.jsp</location>

 </error-page>

 <error-page>

  <error-code>500</error-code>

  <location>/500.jsp</location>

 </error-page>

 

 7.配置Log4j日志记录

 项目中抛出的异常,抛到tomcat中的异常会被tomcat记录下来,存放至logs/localhost.yyyy-MM-dd.log文件中。

 平时我们在项目中使用的log4j记录日志跟tomcat是没有任何关系的,是独立的一个程序,记录的文件是自定义的。

 我们可以在tomcat中定义一个log4j的公共日志处理方式,这样在项目中就不需要在定义log4j的配置了。

 1)将log4j-1.2.15.jar加入到commonlib目录。


 2)将log4j.properties加入到commonclasses目录。

 

 总体来说,Tomcat服务器配置还是有一定工作量的,短时间也难以完成配置,所以更需要我们靠记忆快速完成Tomcat服务器配置。本站的Tomcat服务器教程中还有更加详细的配置步骤,亟广大初学者之需,帮我们快速上手Tomcat。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>