Tomcat使用总结

来源:互联网 发布:外网管理软件 编辑:程序博客网 时间:2024/06/10 15:15

一 修改控制台显示名称

在tomcat\bin\catalina.bat文件中修改控制台显示名称。

   修改后,可以看到控制台名称变成 Tomcat-zafc了(原来是Tomcat)。

二 Windows上部署多个Tomcat

在windows上部署多个tomcat只需修改各个tomcat中的server.xml文件,端口正确配置即可。无需配置环境变量,若配置了CATALINA_HOME,所有的tomcat启动时都会去找指定的路径了。

举个例子,假设同一台机器上有TOMCAT_A、TOMCAT_B、TOMCAT_C。环境变量配置TOMCAT_A的相关信息,那么双击start.bat启动TOMCAT_B或者TOMCAT_C时启动的都是TOMCAT_A。

三 TOMCAT_HOME和CATALINA_HOME

    低版本的tomcat配置环境变量时用TOMCAT_HOME,高版本的tomcat用TOMCAT_HOME、CATALINA_HOME都可以。

四 Windows下Tomcat启动方式

01.  控制台切换到tomcat\bin目录下执行 catalina.bat start

02.  在tomcat\bin目录下双击startup.bat运行。

startup.bat = catalina.sh start。批处理文件,从dos环境启动,方便查看日志。

startup.bat文件,主要作用就是找到catalina.bat文件,并且执行它。(详细可参见文档http://www.cnblogs.com/love-you-girl/p/3823087.html

03.  tomcat.exe

应用程序文件。

五 tomcat7.exe与startup.bat的区别

Ø  这两个都可以启动tomcat,但tomcat7.exe必须安装了服务才能启动,而startup.bat不需要

Ø  另外一个区别是它们启动所使用的JAVA环境配置是分开的。

tomcat7.exe启动所使用JAVA配置与服务启动所使用的JAVA配置一样,都是通过tomcat7w.exe的JAVA面板配置(可以在创建服务前修改service.bat文件的JAVA_HOME变量来指定初始的JVM,该JAVA面板的所有配置项都是从service.bat文件初始化的。)

startup.bat启动所使用的JAVA配置可以通过修改catalina.bat 与setclasspath.bat 文件里的JAVA_HOME与JRE_HOME变量来指定,也可以直接在电脑的高级属性里面添加。

六 tomcat7.exe和tomcat7w.exe的区别

Tomcat7是windows服务的运行程序;Tomcat7w是图形化界面程序,作用是配置和监视tomcat的服务。
只有注册tomcat的服务器才可以使用这两个exe来启动tomcat。
将tomcat注册成服务的方法:
1. 在DOS命令行模式下,cd到tomcat的bin目录下。
2. 在tomcat的bin目录下可以看到有一个service.bat的批处理文件,这个文件就是为我们将tomcat注册成系统服务所用。
3. 执行命令 service.bat  install  服务名   后面的服务名可以随便取,别跟系统已有的服务名冲突就行。
如果成功可以看到以下提示信息:
The Service '服务名'  has been installed
4. 如果不需要这个服务了,也可以用简单的命令将其去除。
前面步骤如上,执行命令:service.bat uninstall 服务名
移除成功的提示信息:
The Service ‘服务名' has been removed

七 Tomcat目录说明

Ø  bin -- 存放windows或Linux平台上启动和关闭Tomcat的脚本文件。

Ø  conf -- 存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml

Ø  lib -- Tomcat运行需要加载的jar包。

Ø  logs -- 用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的

日志。(清空不会对tomcat运行带来影响)在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中,在linux环境中,控制台的输出日志在catalina.out文件中。

Ø  tmp -- 用来存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)

Ø  webapps -- 用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程

序。可以以文件夹、war包、jar包的形式发布应用。当然,也可以把应用程序放在磁盘的任意位置,在配置文件中映射好就行。

Ø  work -- 用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。

八 server.xml配置说明


                                                                   各组件关系图

Ø  <Server元素>:代表整个容器,Tomcat实例的顶层元素,它可以包含一个或多个 “Service”实例。

Ø  <Service元素>:包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素。

Ø  <Connector>元素:由Connector接口定义。<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果。

Ø  <Engine>元素 :每个Service元素只能有一个Engine元素,处理在同一个<Service>中所有<Connector>元素接收到的客户请求。

Ø  <Host>元素:一个Engine元素可以包含多个<Host>元素。每个<Host>元素定义了一个虚拟主机,它包含了一个或多个Web应用。

     一个<Host>可以包含多个<Context>元素。每个web应用有唯一的一个相对应的Context代表web应用自身。

元素名

属性

解释

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

docBase

应用程序的路径或者是WAR 文件存放的路径

path

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

reloadable

这个属性非常重要,如果为true ,则tomcat 会自动检测应用程序的/WEB-INF/lib /WEB-INF/classes 目录的变化,自动加载新的应用程序,我们可以在不重启tomcat 的情况下改变应用程序。

host ( 表示一个虚拟主机 )

name

指定主机名

appBase

应用程序基本目录,即存放应用程序的目录

unpackWARs

如果为true ,则tomcat 会自动将WAR 文件解压,否则不解压,直接从WAR 文件中运行应用程序

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

className

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

prefix

指定log 文件的前缀

suffix

指定log 文件的后缀

timestamp

如果为true ,则log 文件名中要加入时间,如下例:localhost_log.2001-10-04.txt

Realm ( 表示存放用户名,密码及role 的数据库)

className

指定Realm 使用的类名,此类必须实现org.apache.catalina.Realm 接口

Valve ( 功能与Logger 差不多,其prefix suffix 属性解释和Logger 中的一样)

className

指定Valve 使用的类名,如用org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息

directory

指定log 文件存放的位置

pattern

有两个值,common 方式记录远程主机名或ip 地址,用户名,日期,第一行请求的字符串,HTTP 响应代码,发送的字节数。combined 方式比common 方式记录的值更多

只简单说下三个常用的端口:

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

<!-- 启动Server在端口8005处等待关闭命令如果接收到"SHUTDOWN"字符串则关闭服务器-->

Ø port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.

Ø shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置

2.    <Connector port="8080"protocol="HTTP/1.1"

             connectionTimeout="20000"

            redirectPort="8443" URIEncoding='UTF-8'/>

<!--定义了一个HTTPConnector,它通过8080端口接收HTTP请求-->

Ø port :在端口号8080处侦听来自客户browserHTTP/1.1请求.如果把8080改成80,则只要输入http://localhost/即可。选择102465535之间的任意数字作为端口号来运行 Tomcat 服务器,前提是该端口没有被任何其它应用使用。

Ø protocol : 设定Http协议,默认值为HTTP/1.1

Ø  connectionTimeout :定义了这个 connector 在链接获得同意之后,获得请求 URI line(请求信息)响应的最大等待时间毫秒数。默认为20秒。
Ø  redirectPort : 当用户访问非https的资源而该资源又需要https方式访问时,tomcat会自动重定向到https端口。
Ø  URIEncoding:用于解码URL的字符编码,没有指定默认值为ISO-8859-1

3.    <Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

<!--定义了一个JDConnector,它通过8009端口接收由其它服务器(如Apache服务器)转发过来的请求-->

Ø  Protocol :值必须为HTTP1.1,如果使用AJP处理器,该值必须为AJP/1.3
Ø  AJP连接器:用于将ApacheTomcat集成在一起,当Apache接收到动态内容请求时,通过在配置中指定的端口号将请求发送给在此端口号上监听的AJP连接器组件。
Ø  redirectPort : 当用户访问非https的资源而该资源又需要https方式访问时,tomcat会自动重定向到https端口。

九 tomcat中配置多个项目

关于用同一tomcat部署多个应用的2种方法:

Ø  <Context>元素---同一端口部署多个应用则复制多个Context

<Contextpath="/test01" docBase="F:\**\***\proj1"   debug="0"reloadbale="true" />

<Contextpath="/test02" docBase="F:\**\***\proj2"   debug="0"reloadbale="true" />

……

这样可以通过 http://ip:port/test01, http://ip:port/test02访问项目了。项目启动后proj1、proj2会加载在tomcat/webapps目录下。这种配置的好处是这些应用公用Connector,访问端口是一样的。

Ø   <Service>元素---不同端口部署不同应用则复制多个Service

将Service元素复制一份,直接粘贴到原来那个Service元素之后,即 .....这一部分复制下来,放到第一个之后,然后再继续修改刚刚添加的部分配置信息:
   
按照下列步骤修改第二个Service元素:
将Service元素的name属性改为Catalina2
将第一个Connector元素的port属性由8080改为其他未使用的端口,如8081
将第二个Connector元素的port属性由8009改为其他未使用的端口,如8010
将Engine元素的name属性由Catalina改为Catalina2,与Service的name属性保持一致
将Host元素的appBase属性由webapps改为webapps2
   
创建目录
%TOMCAT_HOME%/conf/Catalina2/localhost

%TOMCAT_HOME%/webapps2
将%TOMCAT_HOME%/webapps/ROOT复制到%TOMCAT_HOME%/webapps2下
这样就有两个工程放置的目录,一个是webapp 一个是webapp2,都可以放你的war工程,而且如果工程名字相同都没有问题。它们之间是没有干扰的。

十 tomcat项目部署方式

Ø  把项目文件(war包等)放在webapps目录下

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。

<Hostname="localhost" appBase="webapps"

                  unpackWARs="true"autoDeploy="true">

webapps是默认目录,若想修改,修改appBase即可。

Ø  指定路径

   <Context path="/test02"docBase="F:\**\***\proj2"  debug="0" reloadbale="true" />

path:虚拟路径;

docBase :应用程序的物理路径;

debug :设定debug level,  0表示提供最少的信息,9表示提供最多的信息

reloadable :如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序。

总结: tomcat启动的时候会先加载appBase定义的webapps下的所有项目然后再去加载我们配置的(context)。

十一 catalina.bat运行原理

十二 防火墙

部署了tomcat后在本机可以访问,但是局域网内的其他机器无法访问,此时就要检查防火墙配置了。

win7防火墙入站规则:外网(别人电脑)访问自己电脑的规则。

win7防火墙出站规则:自己电脑访问外网的规则。

在控制面板-防火墙-高级设置中更改入站规则,将tomcatserver.xml中配置的访问端口增加进去。

    对入站规则tomcat修改,本地端口中输入server.xml中配置的端口号。若入站规则中没有tomcat,可新增入站规则。配置完成后,外网即可访问本机tomcat网址了。

在网络中,所谓防火墙,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你同意的人和数据进入你的网络,同时将你不同意的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问InternetInternet上的人也无法和公司内部的人进行通信。

附:java环境变量配置

不一定必须配置JAVA_HOME,在path中直接输入全路径也可以。我在windows上配置jdk环境变量时,path中输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

在控制台中javac提示不是内部或外部命令,也不是可执行文件。将JAVA_HOME换成全路径之后就可以了。配置maven环境变量也存在类似问题,配置了M2_HOME,控制台无法识别mvn命令,将path中的%M2_HOME%改成全路径,控制台输入mvn命令可正常使用。

0 0
原创粉丝点击