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 的前缀,这样请求的url为http://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处侦听来自客户browser的HTTP/1.1请求.如果把8080改成80,则只要输入http://localhost/即可。选择1024到65535之间的任意数字作为端口号来运行 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连接器:用于将Apache与Tomcat集成在一起,当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)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。
附: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命令可正常使用。
- Tomcat使用总结
- Tomcat使用总结
- Tomcat使用总结
- Tomcat使用总结
- Tomcat使用总结
- Tomcat使用总结
- Tomcat服务器使用总结
- Tomcat使用技巧最新总结
- Tomcat学习总结(2)——Tomcat使用详解
- Tomcat学习总结(2)——Tomcat使用详解
- Tomcat使用总结文档(2012.11.08)
- 查看TOMCAT内存使用情况(总结)
- 查看TOMCAT内存使用情况(总结)
- Tomcat(总结)
- tomcat总结
- Tomcat总结
- Tomcat总结
- Tomcat 总结
- [图床神器]Windows下的图片上传工具MPic
- Android BroadcastReceiver知识点总结
- hdu-3037-Saving Beans(Lucas定理+大组合数取模)
- Shibboleth简介03——Shibboleth是怎样工作的?(二)
- 优秀程序员必备技能大全
- Tomcat使用总结
- MMU笔记(二)
- Eclipse背景颜色修改
- 在sql server中如何用sql语句查看表结构信息?
- 猿团与中国电信达成战略合作 推动“双创”工作深入开展
- Android 最完善的身份证验证,亲测可用!
- 控制器初始化方法_initialize
- mysql安装与配置
- iOS--一份详细的pod清单