tomcat一般配置

各配置文件说明:

server.xml  核心配置文件。

context.xml  为部署于此Tomcat实例上的所有web应用程序提供默认配置,每个webapp都可以使用独有的context.xml,一般在webapp目录中的META-INF或WEB-INF子目录中;常用于定义会话管理器、Realm以及JDBC等。

web.xml  为部署于此Tomcat实例上的所有web应用程序提供默认部署描述符(与部署相关的信息,如:装载哪些类,怎么装载,去哪里装载之类的),用于为webapp提供基本的servlet定义和MIME映射表等。

tomcat-user.xml  Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户指定角色等将通过编辑此文件实现。

catalina.policy  当基于security选项启动tomcat实例时会读取此配置文件;此文件是JAVA的安全策略配置文件,配置访问codebase或某此Java类的权限。

catalina.properties  Java属性定义文件, 设定类加载器路径、安全包列表和一些调整性能的参数信息。

logging.properties  定义日志相关的配置信息,如日志级别、文件路径等。

以下都是server.xml配置文件。注意是区分大小写的,组件的第一个字母都是大写。

一、初识配置组件

配置文件中是一个层次结构的配置方式。每一个层次都是由tomcat自带的类来实现的。也称为组件。这是除了jsp和sevlet库之外的web部分的类库。

下在同是一张常用组件的层次图:

大约就是这么的一个结构,还有很多组件没有列出。大致上所有组件可分为几类:

顶级组件 也就是server
容器类 可以包含其它组件的
连接器组件 Connector,用来监听地址和端口
被嵌套类的组件 被包含在容器类组件中,不能包含其它组件

各常见组件详细解释:

1、Server(服务器),表示一个运行于JVM中的tomcat实例,也就是tomcat的进程。每个tomcat只能有一个进程,多个线程。而且一个JVM中只能有一个tomcat实例。也可以运行多个JVM+tomcat,只要不是同一个套接字即可,不过有什么意义呢。server中可以有多个service,不过一般不这样玩。

2、Service(服务),用于将连接器关连到引擎上,一个service可以有多个connector,但只能有一个engine。也就是把多个监听的地址和端口关联到了同一个engine上。

3、Connector(连接器),简单的说就是用来监听地址和端口的,收到请求再交给engine来处理。连接器对于apache主要有两种: 一种是apache2.2以前用的mod_jk,一种是以后的mod_proxy。而连接协议方面。mod_jk一般只用ajp连接连接, 而mod_proxy有http和ajp两种。这个我们在学前端是apache或nginx的时候再来说。

AJP协议: Apache Jserv Protocal,只能是Apache与tomcat之间用。nginx或是浏览器只能用http。

容器类组件:

4、Engine(引擎),通常是指Catalina Servlet引擎。是直正提供Jsp解析,jsp转换, 编译并向外提供服务的核心组件。负责通过connector接收用户请求。并通过检查http首部来交给不同的host。

5、Host(主机),主机组件类似于Apache中的虚拟主机,每一个host都是一个独立的虚拟主机。 支持基于FQDN的虚拟主机。当然也有别的方式实现的基于其它方式的虚拟主机。一个引擎至少要包含一个host。

6、Context(上下文),一个context代表一个web应用程序。用来指定对应的web程序代码的根目录,和一些额外的属性,如部署方式等。一个host中可以有多个。用来定义一个应用程序的部署。是最内层的容器类组件。

被嵌套类(nested)组件:

7、Valve(阀门),拦截请求并在将其转至对应的web应用程序之前进行处理操作。可用于任何容器中。

8、Logger(日志记录器),用于记录组件内部的状态信息。可用于除context之外的任何容器中。并且是可继承的。如定义在引擎级别,以下级别中如果没有定义,则会继承。

9、Realm(领域),可用于任何容器类的组件中。关联一个用户认证库,实现认证和授权。可被继承。在为应用程序定义角色访问控制时,就是要在Realm中实现的。

二、各组件属性

1、server:

例:

<Server port="8005" shutdown="SHUTDOWN">

允许管理员通过访问telnet 8005端口,输入SHUTDOWN来关闭实例。一般也用不到。

port:用以在哪个端口来接受关闭服务的指令。默认只允许本机访问。

shutdown:接收到什么字符串以后执行关闭服务的指令。

[[email protected] ~]# telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
SHUTDOWN            #不能有空格
Connection closed by foreign host.

2、Service:

例:

<Service name="Catalina">

name:此服务的名称,默认为Catalina;名称会出现在相关的日志信息里。

3、Connector:

例:

<Connector port="80" protocol="HTTP/1.1"  enableLookups="false"
connectionTimeout="20000" maxThreads="500" minSpareThreads="25" maxSpareThreads="75" />

两种连接协议http和ajp。而http中还有几个分类。这里在protocol中出现的http/1.1是http连接方式中的默认的一种方式,这里我们就只了解一下就可以了。我们现在是以客户浏览器来访问,就只能用http协议了。

address:监听的地址,默认所有地址。

maxThreads:最大并发连接数,默认200。

minSpareThreads:最小空闲线程数。

maxSpareThreads:最大空闲线程数。

port:监听端口。

protocol:连接器所使用的协议,默认为HTTP/1.1,定义AJP协议时一般为AJP/1.3

redirectPort:如果是http协议的连接器,收到https的连接后,转到这个属性所定义的端口上。

connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒,默认60000。

enableLookups:反解客户端的主机名。默认为true。建议false。

acceptCount:等待队列的长度。

如果是https连接的话,还要加很多属性。从官网抄了一个例子:

http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11AprProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           SSLCertificateFile="/usr/local/ssl/server.crt" 
           SSLCertificateKeyFile="/usr/local/ssl/server.pem"
           SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>

4、Engine:

例:

<Engine name="Catalina" defaultHost="localhost">

name:定义名称,会在相关的日志中出现。

defaultHost:如果发来的连接无法识别是哪个host所定义的虚拟主机,则发给此属性所指定的host.

5、Host

例:

<Host name="www.a.com" appBase="/www/a.com" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="ROOT" />
        <Context path="/bbs" docBase="bbs" />
        <Context path="/blog" docBase="blog" />
</Host>

表示www.a.com虚拟主机的程序项目在/www/a.com路径下,而程序代码一般是在下级的目录中,当然也是可以在这个目录中的。

而主程序在/www/a.com/ROOT目录中,URL为www.a.com;bbs程序在/www/a.com/bbs目录中,URL为www.a.com/bbs;blog程序在/www/a.com/blog目录中,URL为www.a.com/blog。

appBase:web程序所在的目录,就是网页项目所在的根目录。可以用绝对路径,如果是相对路径,则是相对与变量CATALINA_HOME变量中的路径。

autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true;

unpackWars:是否对appBase目录中的WAR格式的归档文件自动展开;默认为true;

还有一个小容器组件没有写出来,但是跟Host相关:<Alias></Alias>,定义Host name的别名。

如上面我的主机名为www.a.com,如果我还想要有个名称来访问Host所指定的程序 就可以:

<Host name="www.a.com" appBase="/www/a.com" unpackWARs="true" autoDeploy="true">
<Alias>www.b.org</Alias>
</Host>

6、Context:

例:

<Host name="www.a.com" appBase="/www/a.com" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="ROOT" />
        <Context path="/bbs" docBase="bbs" />
        <Context path="/blog" docBase="blog" />
</Host

功能大致有两个,

一是类似于apache中的路径别名Alias,一个Context定义用于标识一个Web应用程序代码所在的路径和所关联的URI。虽然我们这里的目录名称与URI中的路径一样的,不过不一样也是同样的效果。

二是静态部署,

虽然我们在host中定义了autoDeploy自动部署,但是有时候一些程程可能是因为文件多或是复杂,从网页打开是空白的,这就自动部署不成功。就要定义context来专门指定代码的位置了,也就是静态部署。

布署: 让程序处于待发状态。 编译并由类加载器加载所依赖的类库文件。只要用户请求来就可以直接运行响应了。

每一个Jsp程序都要先部署才能运行。

分为静态部署和动态部署,也就是用不用重启tomcat。

因为jsp是程序文件,所以与别的格式的网页文件不一样。

docBase:Web应用程序代码的存放位置,如果是相对路径,相对于Host的appBase的路径。

path:相对于Web服务器根路径而言的URI。如果为“”空,表示是根目录。

reloadable:表示是否允许重新加载Web应用程序的类,程序在布署的时候会加载相关的类,这里就是是否重新加载;我觉得意思应该是有其它程序已经加载了相关的类时,在布署此程序的时候是否要再重新加载一次。默认为false;



三、使用tomcat自带的应用程序

在安装完tomcat并启动以后,就可以打开了。网页太大,就只截了一部分。

这三个分别是状态信息,应用程序管理和虚拟主机管理。在打开的时候会提示输入帐号,直接点取消会提示怎么做。

上面二个和第三个的用户所用的角色权限是不一样的,我们先看看先两个。

按提示在配置文件tomcat-users.xml中添加用户。

<!--  -->之间是注释,这个文件中注释很多,小心别写到注释里面去了。然后重启tomcat就可以登录了。

第一个是状态信息,每二个是管理应用程序,里面可以布署应用程序。

第三个也是按提示操作就行。 我这里是用的同一个用户,一个用户拥有两个角色的权限就可。结果是这个样子:

这里也就这样,可以动态的增加虚拟主机, 不过是直接增加到内存中的,不会写入配置文件。



就写到这里吧,都是一些简单的操作,欢迎各位浏览。

时间: 2024-10-28 21:07:11

tomcat一般配置的相关文章

Tomcat 基本配置(转)

转自:http://blog.csdn.net/jubincn/article/details/4856293 目录(?)[+] Tomcat 基本配置 tomcat读取配置文件 首先简单说一下tomcat是如何读取配置文件的.tomcat在启动时,首先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME.然后找这个变量所指的目录下的conf文件夹,从中读取配置文件. 最重要的配置文件:server.xml 要配置tomcat,基本上了解server.xml,conte

腾讯云服务器centos 6.5(jdk+tomcat+vsftp)、腾讯mysql数据库 及 tomcat自启动 配置教程

1.腾讯云数据库配置 1.考虑到安全性问题,,平常不使用root用户登录,新增一个用户名neil,用来管理项目的数据库 a.首先登录root创建db_AA数据库 b.在root用户下,创建neil用户,并对neil用户授权对db_AA数据库所有操作. GRANT ALL ON db_AA.* TO [email protected]"%" IDENTIFIED BY "XXXX"; 2.将现有数据导入到数据库中 注意:尽量不要使用Myeclipse.Navicat等

Springmvc +JNDI 在Tomcat下 配置数据源(转)

一.             简介 jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象.目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性. 二.             tomcat配置jndi有三种方式. 第一种:单个应用独享数据源 在Tomcat的server.xml找到工程的Context节点,添加一个私有数据源 <

linux 下安装 jdk tomcat 并配置

linux下安装TOMCAT与JDK 第1步:新建boss用户,用户名:boss,密码:boss 第2步:将安装用户路径设置成/app/boss [[email protected]]# useradd-d /app/boss -m boss [[email protected]]# passwdboss Changing password for user boss. New password:  boss passwd: all authentication tokens updated s

Eclipse Tomcat插件的配置, 及 Tomcat 的配置

Eclipse Tomcat插件的配置, 及 Tomcat 的配置 首先下载 对应 eclipse 版本的 tomcat 插件版本,(这里要注意: Tomcat 插件是Tomcat 插件,Tomcat 是 Tomcat, 两者不能混淆!) 下载地址:http://www.eclipsetotale.com/tomcatPlugin.html 然后将得到的压缩包解压,放入 eclipse 的 plugins 目录中重启 eclipse, Tomcat 插件安装成功! 当然安装成功不并代表能使用,这

tomcat ssi配置及升级导致ssi include错误问题解决

最近tomcat升级版本时,遇到了ssi解析的问题,记录下解决的过程,还有tomcat ssi配置的要点. tomcat 配置SSI的两种方式 Tomcat有两种方式支持SSI:Servlet和Filter. SSIServlet 通过Servlet,org.apache.catalina.ssi.SSIServlet,默认处理”*.shtml”的URL. 配置方式: 修改tomcat的 conf/web.xml文件,去掉下面配置的注释: <servlet> <servlet-name&

Tomcat中配置自定义404错误页面

404,50x这种错误经常遇到. 如果%CATALINA_HOME%\conf\web.xml和具体应用中都有设置%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xml 则应用中的生效. 如何设置一个友好的用户体验,以windows环境为例: 添加发生异常时,默认的文件,文件位置如下(如果没有设置reloadable为true或autoDeploy="true",则需要重启tomcat让更改的web.xml生效): (1)%CATALINA_HOME%

spring-boot+nginx+tomcat+ssl配置笔记

如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tomcat之间配置为普通的http协议即可.下面说的是后一种方法,同时假定我们基于spring-boot来开发应用. 一.配置nginx: server { listen 80; listen 443 ssl; server_name localhost; ssl_certificate server.

Centos Apache和tomcat集成配置,同时支持PHP和JAVA运行

最近由于项目的需要,需要再原来运行Tomcat服务器上支持PHP运行.很显然,PHP运行使用的是Apache服务器.虽然Tomcat也属于Apache,但是并没有现有的环境,需要我们自己手动配置.顺便说一下,我们使用的服务器环境是Centos6.4 . 我也是第一次搭建这个环境,没有经验,身边的同事也都没有整合过.所以最好的方法肯定是找度娘了. 但是,我发现网上的东西那叫一个又杂又乱,我保证你看了十篇文章,你也无法搭建成功.主要原因是转载的文章太多,而转载者也并非都是作者或者是专家.所以,文章要

tomcat环境配置 Linux 与 Windows

Windows:例如tomcat安装在 E:\tomcat 需要在环境变量配置:CATALINA_HOME=E:\tomcat CATALINA_BASE= E:\tomcat Linux:例如tomcat安装在:/usr/local/tomcat8.5 [[email protected] ~]# vi /etc/profile  进入配置文件,添加下列环境变量,编辑完Esc -> :wq 保存退出 export JAVA_HOME=/cdr/jdk1.7.0_51 export PATH=$