1. 配置系統(tǒng)管理(admin web application) 大多數(shù)商業(yè)化的j2ee服務(wù)器都提供一個(gè)功能強(qiáng)大的管理界面,且大都采用易于理解的web應(yīng)用界面。tomcat按照自己的方式,同樣提供一個(gè)成熟的管理工具,并且絲毫不遜于那些商業(yè)化的競(jìng)爭(zhēng)對(duì)手。tomcat的admin web application最初在4.1版本時(shí)出現(xiàn),當(dāng)時(shí)的功能包括管理context、data source、user和group等。當(dāng)然也可以管理像初始化參數(shù),user、group、role的多種數(shù)據(jù)庫(kù)管理等。在后續(xù)的版本中,這些功能將得到很大的擴(kuò)展,但現(xiàn)有的功能已經(jīng)非常實(shí)用了。
admin web application被定義在自動(dòng)部署文件:catalina_base/webapps/admin.xml 。 (譯者注:catalina_base即tomcat安裝目錄下的server目錄)
你必須編輯這個(gè)文件,以確定context中的docbase參數(shù)是絕對(duì)路徑。也就是說,catalina_base/webapps/admin.xml 的路徑是絕對(duì)路徑。作為另外一種選擇,你也可以刪除這個(gè)自動(dòng)部署文件,而在server.xml文件中建立一個(gè)admin web application的context,效果是一樣的。你不能管理admin web application這個(gè)應(yīng)用,換而言之,除了刪除catalina_base/webapps/admin.xml ,你可能什么都做不了。
當(dāng)你完成這些步驟后,請(qǐng)重新啟動(dòng)tomcat,訪問http://localhost:8080/admin,你將看到一個(gè)登錄界面。admin web application采用基于容器管理的安全機(jī)制,并采用了jakarta struts框架。一旦你作為“admin”角色的用戶登錄管理界面,你將能夠使用這個(gè)管理界面配置tomcat。
2.配置應(yīng)用管理(manager web application) manager web application讓你通過一個(gè)比admin web application更為簡(jiǎn)單的用戶界面,執(zhí)行一些簡(jiǎn)單的web應(yīng)用任務(wù)。
然后重新啟動(dòng)tomcat,訪問http://localhost/manager/list,將看到一個(gè)很樸素的文本型管理界面,或者訪問http://localhost/manager/html/list,將看到一個(gè)hmtl的管理界面。不管是哪種方式都說明你的manager web application現(xiàn)在已經(jīng)啟動(dòng)了。
manager application還允許你停止、重新啟動(dòng)、移除以及重新部署一個(gè)web應(yīng)用。停止一個(gè)應(yīng)用使其無(wú)法被訪問,當(dāng)有用戶嘗試訪問這個(gè)被停止的應(yīng)用時(shí),將看到一個(gè)503的錯(cuò)誤——“503 - this application is not currently available”。
基于名字的虛擬主機(jī)可以被建立在任何web服務(wù)器上,建立的方法就是通過在域名服務(wù)器(dns)上建立ip地址的別名,并且告訴web服務(wù)器把去往不同域名的請(qǐng)求分發(fā)到相應(yīng)的網(wǎng)頁(yè)目錄。因?yàn)檫@篇文章主要是講tomcat,我們不準(zhǔn)備介紹在各種操作系統(tǒng)上設(shè)置dns的方法,如果你在這方面需要幫助,請(qǐng)參考《dns and bind》一書,作者是paul albitz and cricket liu (o'reilly)。為了示范方便,我將使用一個(gè)靜態(tài)的主機(jī)文件,因?yàn)檫@是測(cè)試別名最簡(jiǎn)單的方法。 在tomcat中使用虛擬主機(jī),你需要設(shè)置dns或主機(jī)數(shù)據(jù)。為了測(cè)試,為本地ip設(shè)置一個(gè)ip別名就足夠了,接下來(lái),你需要在server.xml中添加幾行內(nèi)容,如下:
<!-- 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) 一些站點(diǎn)允許個(gè)別用戶在服務(wù)器上發(fā)布網(wǎng)頁(yè)。例如,一所大學(xué)的學(xué)院可能想給每一位學(xué)生一個(gè)公共區(qū)域,或者是一個(gè)isp希望給一些web空間給他的客戶,但這又不是虛擬主機(jī)。在這種情況下,一個(gè)典型的方法就是在用戶名前面加一個(gè)特殊字符(~),作為每位用戶的網(wǎng)站,比如:
10.限制特定主機(jī)訪問(restricting access to specific hosts) 有時(shí),你可能想限制對(duì)tomcat web應(yīng)用的訪問,比如,你希望只有你指定的主機(jī)或ip地址可以訪問你的應(yīng)用。這樣一來(lái),就只有那些指定的的客戶端可以訪問服務(wù)的內(nèi)容了。為了實(shí)現(xiàn)這種效果,tomcat提供了兩個(gè)參數(shù)供你配置:remotehostvalve 和remoteaddrvalve。
通過配置這兩個(gè)參數(shù),可以讓你過濾來(lái)自請(qǐng)求的主機(jī)或ip地址,并允許或拒絕哪些主機(jī)/ip。與之類似的,在apache的httpd文件里有對(duì)每個(gè)目錄的允許/拒絕指定。 例如你可以把a(bǔ)dmin web application設(shè)置成只允許本地訪問,設(shè)置如下:
作者簡(jiǎn)介: jason brittain是collabnet公司的一名資深軟件工程師,主要負(fù)責(zé)軟件底層架構(gòu)的開發(fā)。他已經(jīng)為apache jakarta項(xiàng)目做了很多貢獻(xiàn),多年以來(lái),他一直是一名積極的開源軟件開發(fā)者。
ian f. darwin已經(jīng)在計(jì)算機(jī)行業(yè)工作了30年:從1980年開始使用unix,從1995年開始使用java,從1998年開始使用openbsd。他是兩本oreilly圖書的作者:checking c programs with lint 和 java cookbook,還與jason brittain合著了tomcat: the definitive guide。