JSP虚拟主机,jsp空间,java空间,java虚拟空间JSP虚拟主机,jsp空间,java空间,java虚拟空间

Tomcat 4.x的配置与管理



作者:    文章来源:
发布日期:2006年10月27日
Tomcat 4.x是Servlet 2.3和JSP 1.2规范的一个实现,也是一个当前广泛使用的Servlet/JSP容器。

一、安装与配置


安装
set JAVA_HOME = …
测试:http://localhost:8080/

二、目录结构


bin : 存放启动和关闭tomcat脚本  
conf : 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml  
work : 存放jsp编译后产生的class文件  
webapp: 存放应用程序示例,以后你要部署的应用程序也要放到此目录  
logs : 存放日志文件  
lib/japser/common : 这三个目录主要存放tomcat所需的jar文件 

三、配置: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文件    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:经过我测试,我设置Context 的path="",reloadable=true,然后放一个WAR文件到webapps目录,结果tomcat不能检测出此文件(重起tomcat可以),而把此文件解压,则tomcat会自动检测出这个新的应用程序。如果不能自动检测WAR文件,我们可以利用下面管理中讲的方法来部署应用程序。
2:默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。
3:还有一些元素我们没有介绍,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。

四、管理


    添加一个用户
首先在conf omcat-users.xml中添加一个用户:
    <user name=”srx” password=”srx” roles=”standard,manager” />
重起tomcat,输入http://localhost:8080/manager
    显示应用列表
http://localhost:8080/manager/list
    重新装载应用
…/manager/reload?path=/examples
如果在server.xml中把此应用对应的context的reloadable属性设为true,则没必要使用这种方式
    显示session信息
…/manager/session?path=/examples
    关闭及启动应用
…/manager/start?path=/examples
…/manager/stop?path=/examples
    部署/反部署应用
1.    WAR有两种组织方式,一种是按一定的目录结构组织文件,一种是一个后缀为WAR的压缩包,因此它的部署方式也有两种:
在浏览器中输入:http://localhost:8080/manager/install?path=/examples&war=file:/c:examples(并不会把c:examples拷贝到tomcatwebapps目录中;并且,如果是远程部署,可以执行此命令但部署的应用无法启动,因为,文件并没有被拷贝到server上。)
就会将按目录结构组织的WAR部署
2.    如果输入:http://localhost:8080/manager/install?path=/examples&war=jar:file:/c:examples.war!/
就会将按压缩包组织的WAR部署,注意此url后半部分一定要有!/号。
3.    部署后就可以用 http://localhost:8080/examples访问了。
在浏览器中输入:http://localhost:8080/manager/remove?path=/examples
就会撤销刚才部署的应用程序。

五、与Apache的集成


虽然tomcat也可以作web服务器,但其处理静态html的速度比不上apache,且其作为web服务器的功能远不如apache,因此我们想把apache和tomcat集成起来。
我们以linux系统为例介绍.
从apache网站下载apache1.3.22源代码版本,然后使用如下命令配置安装apache: 
mkdir /usr/local/apache
tar zxvf apache.1.32.tar.gz
cd apache.1.32
./configure --prefix=/usr/local/apache --enable-module=so 
make
make install
注意configure命令指定目标安装目录,并且加入DSO(Dynamic Shared Object)支持,注意一定不要忘了这一个选项。
然后下载webapp模块,将解压后mod_webapp.so文件放入apache的libexec目录,编辑apache的conf目录下的httpd.conf,在这个文件的最后加入下面三行: 
LoadModule webapp_module libexec/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/ 
第一行是加入webapp模块,如果编译apache时不增加DSO支持,则无法使用LoadModule指令,第二行指定tomcat与apache的连接,第三行指定部署那个应用,这两个指令使用格式如下: 
WebAppConnection [connection name] [provider] [host:port]
WebAppDeploy [application name] [connection name] [url path]  
其中connection name指定连接名,provider只能是warp,port端口与你的tomcat的配置文件server.xml最后几行指定的要保持一致。文件如下: 
<Service name="Tomcat-Apache"> 
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0"/>
******
</Service> 
application name与你在tomcat中部署的应用名一致,url path指定访问这个应用的url。例如上面的例子可以通过http://localhost/examples/来访问tomcat中的examples应用。

六、中文问题


对于jsp,一般通过在.jsp中加入<%@page contentType=”text/html;charset=GB2312” %>
对于servlet,可以使用servlet2.3的HttpServletRequest.setCharacterEncoding()来解决。

七、日志


Tomcat在$TOMCAT/logs目录下默认有4个log文件:
    catalina_log.$Date.txt
Servlet容器Catalina自身的log信息
    localhost_access_log.$Date.txt
日志自浏览器的所有请求URI信息
    localhost_log.$Date.txt
在代码中的所有log()都到此
    localhost_examples_log.$Date.txt
tomcat自带examples应用的的log
Copyright © 2002-2012 JSPCN.net. All rights reserved.
JSP中文网    备案号:粤ICP备09171188号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号