你所需要做的就是:按照你的需求配置tomcat,只要你正确配置,tomcat一般都能适合你的要求。下面是一系列关于tomcat的配置技巧,这些技巧源自于我的书:《tomcat权威指南》,希望对你有所帮助。—— jason brittain
1. 配置系统管理(admin web application) 大多数商业化的j2ee服务器都提供一个功能强大的管理界面,且大都采用易于理解的web应用界面。tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。tomcat的admin web application最初在4.1版本时出现,当时的功能包括管理context、data source、user和group等。当然也可以管理像初始化参数,user、group、role的多种数据库管理等。在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。
admin web application被定义在自动部署文件:catalina_base/webapps/admin.xml 。 (译者注:catalina_base即tomcat安装目录下的server目录)
你必须编辑这个文件,以确定context中的docbase参数是绝对路径。也就是说,catalina_base/webapps/admin.xml 的路径是绝对路径。作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个admin web application的context,效果是一样的。你不能管理admin web application这个应用,换而言之,除了删除catalina_base/webapps/admin.xml ,你可能什么都做不了。
当你完成这些步骤后,请重新启动tomcat,访问http://localhost:8080/admin,你将看到一个登录界面。admin web application采用基于容器管理的安全机制,并采用了jakarta struts框架。一旦你作为“admin”角色的用户登录管理界面,你将能够使用这个管理界面配置tomcat。
2.配置应用管理(manager web application) manager web application让你通过一个比admin web application更为简单的用户界面,执行一些简单的web应用任务。
然后重新启动tomcat,访问http://localhost/manager/list,将看到一个很朴素的文本型管理界面,或者访问http://localhost/manager/html/list,将看到一个hmtl的管理界面。不管是哪种方式都说明你的manager web application现在已经启动了。
基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(dns)上建立ip地址的别名,并且告诉web服务器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲tomcat,我们不准备介绍在各种操作系统上设置dns的方法,如果你在这方面需要帮助,请参考《dns and bind》一书,作者是paul albitz and cricket liu (o'reilly)。为了示范方便,我将使用一个静态的主机文件,因为这是测试别名最简单的方法。 在tomcat中使用虚拟主机,你需要设置dns或主机数据。为了测试,为本地ip设置一个ip别名就足够了,接下来,你需要在server.xml中添加几行内容,如下:
<!-- this host is the first "virtual host": www.example.com --> <host name="www.example.com" appbase="/home/example/webapp"> <context path="" docbase="."/> </host>
<!-- define the members-only area, by defining a "security constraint" on this application, and mapping it to the subdirectory (url) that we want to restrict. --> <security-constraint> <web-resource-collection> <web-resource-name> entire application </web-resource-name> <url-pattern>/members/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>member</role-name> </auth-constraint> </security-constraint> <!-- define the login configuration for this application --> <login-config> <auth-method>basic</auth-method> <realm-name>my club members-only area</realm-name> </login-config>
7.配置用户定制目录(customized user directores) 一些站点允许个别用户在服务器上发布网页。例如,一所大学的学院可能想给每一位学生一个公共区域,或者是一个isp希望给一些web空间给他的客户,但这又不是虚拟主机。在这种情况下,一个典型的方法就是在用户名前面加一个特殊字符(~),作为每位用户的网站,比如:
10.限制特定主机访问(restricting access to specific hosts) 有时,你可能想限制对tomcat web应用的访问,比如,你希望只有你指定的主机或ip地址可以访问你的应用。这样一来,就只有那些指定的的客户端可以访问服务的内容了。为了实现这种效果,tomcat提供了两个参数供你配置:remotehostvalve 和remoteaddrvalve。
通过配置这两个参数,可以让你过滤来自请求的主机或ip地址,并允许或拒绝哪些主机/ip。与之类似的,在apache的httpd文件里有对每个目录的允许/拒绝指定。 例如你可以把admin web application设置成只允许本地访问,设置如下:
作者简介: jason brittain是collabnet公司的一名资深软件工程师,主要负责软件底层架构的开发。他已经为apache jakarta项目做了很多贡献,多年以来,他一直是一名积极的开源软件开发者。
ian f. darwin已经在计算机行业工作了30年:从1980年开始使用unix,从1995年开始使用java,从1998年开始使用openbsd。他是两本oreilly图书的作者:checking c programs with lint 和 java cookbook,还与jason brittain合著了tomcat: the definitive guide。