Java程序員必備——Tomcat配置技巧Top10_第1頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、java程序員必備tomcat配置技巧top10java程序員必備——tomcat配置技巧top10一、配置系統(tǒng)管理(admin web application)大多數(shù)商業(yè)化的j2ee服務(wù)器都提供一個(gè)功能強(qiáng)大的管理界面,且大都采納易于理解的web應(yīng)用界面。tomcat根據(jù)自己的方式,同樣提供一個(gè)成熟的管理工具,并且絲毫不遜于那些商業(yè)化的競(jìng)爭(zhēng)對(duì)手。tomcat的admin web application最初在4.1版本時(shí)浮現(xiàn),當(dāng)初的功能包括管理context、data source、user和group等。固然也可以管理像初始化參數(shù),user、group、

2、role的多種數(shù)據(jù)庫(kù)管理等。在后續(xù)的版本中,這些功能將得到很大的擴(kuò)展,但現(xiàn)有的功能已經(jīng)十分有用了。admin web application被定義在自動(dòng)部署文件:catalina_base/webapps/admin.xml 。(譯者注:catalina_base即tomcat安裝名目下的server名目)你必需編輯這個(gè)文件,以確定context中的docbase參數(shù)是肯定路徑。也就是說(shuō),catalina_base/webapps/admin.xml的路徑是肯定路徑。作為另外一種挑選,你也可以刪除這個(gè)自動(dòng)部署文件,而在server.xml文件中建立一個(gè)admin web application

3、的context,效果是一樣的。你不能管理admin web application這個(gè)應(yīng)用,換而言之,除了刪除catalina_base/webapps/admin.xml ,你可能什么都做不了。假如你用法userdatabaserealm(默認(rèn)),你將需要添加一個(gè)user以及一個(gè)role到catalina_base/conf/tomcat-users.xml文件中。你編輯這個(gè)文件,添加一個(gè)名叫admin的role 到該文件中,如下:同樣需要有一個(gè)用戶(hù),并且這個(gè)用戶(hù)的角色是admin。象存在的用戶(hù)那樣,添加一個(gè)用戶(hù)(轉(zhuǎn)變密碼使其越發(fā)平安):你完成這些步驟后,請(qǐng)重新啟動(dòng)tomcat,拜訪htt

4、p:/localhost:8080/admin,你將看到一個(gè)登錄界面。admin web application采納基于容器管理的平安機(jī)制,并采納了jakarta struts框架。一旦你作為admin角色的用戶(hù)登錄管理界面,你將能夠用法這個(gè)管理界面配置tomcat。二、配置應(yīng)用管理(manager web application)manager web application讓你通過(guò)一個(gè)比admin web application更為容易的用戶(hù)界面,執(zhí)行一些容易的web應(yīng)用任務(wù)。manager web application被被定義在一個(gè)自動(dòng)部署文件中: catalina_base/weba

5、pps/manager.xml 你必需編輯這個(gè)文件,以確保context的docbase參數(shù)是肯定路徑,也就是說(shuō)catalina_home/server/webapps/manager的肯定路徑。(譯者注:catalina_home即tomcat安裝名目)假如你用法的是userdatabaserealm,那么你需要添加一個(gè)角色和一個(gè)用戶(hù)到catalina_base/conf/tomcat-users.xml文件中。接下來(lái),編輯這個(gè)文件,添加一個(gè)名為manager的角色到該文件中:同樣需要有一個(gè)角色為manager的用戶(hù)。像已經(jīng)存在的用戶(hù)那樣,添加一個(gè)新用戶(hù)(轉(zhuǎn)變密碼使其越發(fā)平安):然后重新啟動(dòng)

6、tomcat,拜訪http:/localhost/manager/list,將看到一個(gè)很樸實(shí)的文本型管理界面,或者拜訪http:/localhost/manager/html/list,將看到一個(gè)hmtl的管理界面。不管是哪種方式都解釋你的manager web application現(xiàn)在已經(jīng)啟動(dòng)了。manager application讓你可以在沒(méi)有系統(tǒng)管理特權(quán)的基礎(chǔ)上,安裝新的web應(yīng)用,以用于測(cè)試。假如我們有一個(gè)新的web應(yīng)用位于/home/user/hello下在,并且想把它安裝到/hello下,為了測(cè)試這個(gè)應(yīng)用,我們可以這么做,在第一個(gè)文件框中輸入/hello(作為拜訪時(shí)的path)

7、,在其次個(gè)文本框中輸入file:/home/user/hello(作為config url)。manager application還允許你停止、重新啟動(dòng)、移除以及重新部署一個(gè)web應(yīng)用。停止一個(gè)應(yīng)用使其無(wú)法被拜訪,當(dāng)實(shí)用戶(hù)嘗試拜訪這個(gè)被停止的應(yīng)用時(shí),將看到一個(gè)503的錯(cuò)誤?503 - this application is not currently available。移除一個(gè)web應(yīng)用,只是指從tomcat的運(yùn)行拷貝中刪除了該應(yīng)用,假如你重新啟動(dòng)tomcat,被刪除的應(yīng)用將再次浮現(xiàn)(也就是說(shuō),移除并不是指從硬盤(pán)上刪除)。三、部署一個(gè)web應(yīng)用有兩個(gè)方法可以在系統(tǒng)中部署web服務(wù)??截惸愕?/p>

8、war文件或者你的web應(yīng)用文件夾(包括該web的全部?jī)?nèi)容)到$catalina_base/webapps名目下。為你的web服務(wù)建立一個(gè)只包括context內(nèi)容的xml片斷文件,并把該文件放到$catalina_base/webapps名目下。這個(gè)web應(yīng)用本身可以存儲(chǔ)在硬盤(pán)上的任何地方。假如你有一個(gè)war文件,你若想部署它,則只需要把該文件容易的拷貝到catalina_base/webapps名目下即可,文件必需以.war作為擴(kuò)展名。一旦tomcat監(jiān)聽(tīng)到這個(gè)文件,它將(缺省的)解開(kāi)該文件包作為一個(gè)子名目,并以war文件的文件名作為子名目的名字。接下來(lái),tomcat將在內(nèi)存中建立一個(gè)con

9、text,就好象你在server.xml文件里建立一樣。固然,其他必須的內(nèi)容,將從server.xml中的defaultcontext獲得。部署web應(yīng)用的另一種方式是寫(xiě)一個(gè)context xml片斷文件,然后把該文件拷貝到catalina_base/webapps名目下。一個(gè)context片斷并非一個(gè)完整的xml文件,而只是一個(gè)context元素,以及對(duì)該應(yīng)用的相應(yīng)描述。這種片斷文件就像是從server.xml中切取出來(lái)的context元素一樣,所以這種片斷被命名為context片斷。舉個(gè)例子,假如我們想部署一個(gè)名叫mywebapp.war的應(yīng)用,該應(yīng)用用法realm作為拜訪控制方式,我們可

10、以用法下面這個(gè)片斷:把該片斷命名為mywebapp.xml,然后拷貝到catalina_base/webapps名目下。這種context片斷提供了一種方便的辦法來(lái)部署web應(yīng)用,你不需要編輯server.xml,除非你想轉(zhuǎn)變?nèi)笔〉牟渴鹛匦?,安裝一個(gè)新的web應(yīng)用時(shí)不需要重啟動(dòng)tomcat。四、配置虛擬主機(jī)(virtual hosts)關(guān)于server.xml中host這個(gè)元素,惟獨(dú)在你設(shè)置虛擬主機(jī)的才需要修改。虛擬主機(jī)是一種在一個(gè)web服務(wù)器上服務(wù)多個(gè)域名的機(jī)制,對(duì)每個(gè)域名而言,都好象獨(dú)享了囫圇主機(jī)。事實(shí)上,大多數(shù)的小型商務(wù)網(wǎng)站都是采納虛擬主機(jī)實(shí)現(xiàn)的,這主要是由于虛擬主機(jī)能挺直銜接到inte

11、rnet并提供相應(yīng)的帶寬,以保障合理的拜訪響應(yīng)速度,另外虛擬主機(jī)還能提供一個(gè)穩(wěn)定的固定ip?;诿值奶摂M主機(jī)可以被建立在任何web服務(wù)器上,建立的辦法就是通過(guò)在域名服務(wù)器(dns)上建立ip地址的別號(hào),并且告知web服務(wù)器把去往不同域名的哀求分發(fā)到相應(yīng)的網(wǎng)頁(yè)名目。由于這篇文章主要是講tomcat,我們不預(yù)備介紹在各種操作系統(tǒng)上設(shè)置dns的辦法,假如你在這方面需要協(xié)助,請(qǐng)參考dns and bind一書(shū),作者是paul albitz and cricket liu (o&39;reilly)。為了示范便利,我將用法一個(gè)靜態(tài)的主機(jī)文件,由于這是測(cè)試別號(hào)最容易的辦法。在tomcat中用法虛

12、擬主機(jī),你需要設(shè)置dns或主機(jī)數(shù)據(jù)。為了測(cè)試,為本地ip設(shè)置一個(gè)ip別號(hào)就足夠了,接下來(lái),你需要在server.xml中添加幾行內(nèi)容,如下:tomcat的server.xml文件,在初始狀態(tài)下,只包括一個(gè)虛擬主機(jī),但是它簡(jiǎn)單被擴(kuò)充到支持多個(gè)虛擬主機(jī)。在前面的例子中展示的是一個(gè)容易的server.xml版本,其中粗體部分就是用于添加一個(gè)虛擬主機(jī)。每一個(gè)host元素必需包括一個(gè)或多個(gè)context元素,所包含的context元素中必需有一個(gè)是默認(rèn)的context,這個(gè)默認(rèn)的context的顯示路徑應(yīng)當(dāng)為空(例如,path=)。五、配置基礎(chǔ)驗(yàn)證(basic authentication)容器管理驗(yàn)證

13、辦法控制著當(dāng)用戶(hù)拜訪受庇護(hù)的web應(yīng)用資源時(shí),如何舉行用戶(hù)的身份鑒別。當(dāng)一個(gè)web應(yīng)用用法了basic authentication(basic參數(shù)在web.xml文件中auto-method元素中設(shè)置),而實(shí)用戶(hù)拜訪受庇護(hù)的web應(yīng)用時(shí),tomcat將通過(guò)http basic authentication方式,彈出一個(gè)對(duì)話(huà)框,要求用戶(hù)輸入用戶(hù)名和密碼。在這種驗(yàn)證辦法中,全部密碼將被以64位的編碼方式在網(wǎng)絡(luò)上傳輸。注重:用法basic authentication通過(guò)被認(rèn)為是擔(dān)心全的,由于它沒(méi)有矯健的加密辦法,除非在客戶(hù)端和服務(wù)器端都用法https或者其他密碼加密碼方式(比如,在一個(gè)虛擬私人網(wǎng)

14、絡(luò)中)。若沒(méi)有額外的加密辦法,網(wǎng)絡(luò)管理員將能夠截獲(或?yàn)E用)用戶(hù)的密碼。但是,假如你是剛開(kāi)頭用法tomcat,或者你想在你的web應(yīng)用中測(cè)試一下基于容器的平安管理,basic authentication還是十分易于設(shè)置和用法的。只需要添加 和 兩個(gè)元素到你的web應(yīng)用的web.xml文件中,并且在catalina_base/conf/tomcat-users.xml文件中添加適當(dāng)?shù)?和 即可,然后重新啟動(dòng)tomcat。下面例子中的web.xml摘自一個(gè)俱樂(lè)部會(huì)員網(wǎng)站系統(tǒng),該系統(tǒng)中惟獨(dú)member名目被庇護(hù)起來(lái),并用法basic authentication舉行身份驗(yàn)證。請(qǐng)注重,這種方式將有效

15、的代替apache web服務(wù)器中的.htaccess文件。entire application/members/*memberbasicmy clubmembers-only area六、配置單點(diǎn)登錄(single sign-on)一旦你設(shè)置了realm和驗(yàn)證的辦法,你就需要舉行實(shí)際的用戶(hù)登錄處理。普通說(shuō)來(lái),對(duì)用戶(hù)而言登錄系統(tǒng)是一件很棘手的事情,你必需盡量削減用戶(hù)登錄驗(yàn)證的次數(shù)。作為缺省的狀況,當(dāng)用戶(hù)第一次哀求受庇護(hù)的資源時(shí),每一個(gè)web應(yīng)用都會(huì)要求用戶(hù)登錄。假如你運(yùn)行了多個(gè)web應(yīng)用,并且每個(gè)應(yīng)用都需要舉行單獨(dú)的用戶(hù)驗(yàn)證,那這看起來(lái)就有點(diǎn)像你在與你的用戶(hù)搏斗。用戶(hù)們不知道怎樣才干把多個(gè)分別

16、的應(yīng)用整合成一個(gè)單獨(dú)的系統(tǒng),全部他們也就不知道他們需要拜訪多少個(gè)不同的應(yīng)用,只是很迷惑,為什么總要不停的登錄。tomcat 4的single sign-on特性允許用戶(hù)在拜訪同一虛擬主機(jī)下全部web應(yīng)用時(shí),只需登錄一次。為了用法這個(gè)功能,你只需要在host上添加一個(gè)singlesignon valve元素即可,如下所示:在tomcat初始安裝后,server.xml的注釋里面包括singlesignon valve配置的例子,你只需要去掉注釋?zhuān)纯捎梅?。那么,任何用?hù)只要登錄過(guò)一個(gè)應(yīng)用,則對(duì)于同一虛擬主機(jī)下的全部應(yīng)用同樣有效。用法single sign-on valve有一些重要的限制:val

17、ue必需被配置和嵌套在相同的host元素里,并且全部需要舉行單點(diǎn)驗(yàn)證的web應(yīng)用(必需通過(guò)context元素定義)都位于該host下。包括分享用戶(hù)信息的realm必需被設(shè)置在同一級(jí)host中或者嵌套之外。不能被context中的realm籠罩。用法單點(diǎn)登錄的web應(yīng)用最好用法一個(gè)tomcat的內(nèi)置的驗(yàn)證方式(被定義在web.xml中的 中),這比自定義的驗(yàn)證方式強(qiáng),tomcat內(nèi)置的的驗(yàn)證方式包括basic、digest、form和client-cert。假如你用法單點(diǎn)登錄,還希翼集成一個(gè)第三方的web應(yīng)用到你的網(wǎng)站中來(lái),并且這個(gè)新的web應(yīng)用用法它自己的驗(yàn)證方式,而不用法容器管理平安,那你基

18、本上就沒(méi)招了。你的用戶(hù)每次登錄本來(lái)全部應(yīng)用時(shí)需要登錄一次,并且在哀求新的第三方應(yīng)用時(shí)還得再登錄一次。固然,假如你擁有這個(gè)第三方web應(yīng)用的源碼,而你又是一個(gè)程序員,你可以修改它,但那唯恐也不簡(jiǎn)單做。單點(diǎn)登錄需要用法cookies。七、配置用戶(hù)定制名目(customized user directores)一些站點(diǎn)允許個(gè)別用戶(hù)在服務(wù)器上發(fā)布網(wǎng)頁(yè)。例如,一所高校的學(xué)院可能想給每一位同學(xué)一個(gè)公共區(qū)域,或者是一個(gè)isp希翼給一些web空間給他的客戶(hù),但這又不是虛擬主機(jī)。在這種狀況下,一個(gè)典型的辦法就是在用戶(hù)名前面加一個(gè)特別字符(),作為每位用戶(hù)的網(wǎng)站,比如:http:/www.cs.myunivers

19、/usernametomcat提供兩種辦法在主機(jī)上映射這些個(gè)人網(wǎng)站,主要用法一對(duì)特別的listener元素。listener的classname屬性應(yīng)當(dāng)是org.apache.catalina.startup.userconfig,userclass屬性應(yīng)當(dāng)是幾個(gè)映射類(lèi)之一。假如你的系統(tǒng)是unix,它將有一個(gè)標(biāo)準(zhǔn)的/etc/passwd文件,該文件中的帳號(hào)能夠被運(yùn)行中的tomcat很簡(jiǎn)單的讀取,該文件指定了用戶(hù)的主名目,用法passwduserdatabase 映射類(lèi)。web文件需要放置在像/home/users/ian/public_html或者/users/jbrittain

20、/public_html一樣的名目下面。固然你也可以轉(zhuǎn)變public_html 到其他任何子名目下。事實(shí)上,這個(gè)用戶(hù)名目根本不一定需要位于用戶(hù)主名目下里面。假如你沒(méi)有一個(gè)密碼文件,但你又想把一個(gè)用戶(hù)名映射到公共的像/home一樣名目的子名目里面,則可以用法homesuserdatabase類(lèi)。這樣一來(lái),web文件就可以位于像/home/ian/public_html或者/home/jasonb/public_html一樣的名目下。這種形式對(duì)windows而言越發(fā)有利,你可以用法一個(gè)像c:home這樣的名目。這些listener元素,假如浮現(xiàn),則必需在host元素里面,而不能在context元素

21、里面,由于它們都用應(yīng)用于host本身。八、在tomcat中用法cgi腳本tomcat主要是作為servlet/jsp容器,但它也有許多傳統(tǒng)web服務(wù)器的性能。支持通用網(wǎng)關(guān)接口(common gateway interface,即cgi)就是其中之一,cgi提供一組辦法在響應(yīng)掃瞄器哀求時(shí)運(yùn)行一些擴(kuò)展程序。cgi之所以被稱(chēng)為通用,是由于它能在大多數(shù)程序或腳本中被調(diào)用,包括:perl,python,awk,unix shell scripting等,甚至包括java。固然,你也許不會(huì)把一個(gè)java應(yīng)用程序當(dāng)作cgi來(lái)運(yùn)行,究竟這樣太過(guò)原始。普通而言,開(kāi)發(fā)servlet總要比cgi具有更好的效率,由于

22、當(dāng)用戶(hù)點(diǎn)擊一個(gè)鏈接或一個(gè)按鈕時(shí),你不需要從操作系統(tǒng)層開(kāi)頭舉行處理。tomcat包括一個(gè)可選的cgi servlet,允許你運(yùn)行遺留下來(lái)的cgi腳本。為了使tomcat能夠運(yùn)行cgi,你必需做如下幾件事:把servlets-cgi.renametojar (在catalina_home/server/lib/名目下)改名為servlets-cgi.jar。處理cgi的servlet應(yīng)當(dāng)位于tomcat的classpath下。在tomcat的catalina_base/conf/web.xml 文件中,把關(guān)于 cgi的那段的注釋去掉(默認(rèn)狀況下,該段位于第241行)。同樣,在tomcat的cata

23、lina_base/conf/web.xml文件中,把關(guān)于對(duì)cgi舉行映射的那段的注釋去掉(默認(rèn)狀況下,該段位于第299行)。注重,這段內(nèi)容指定了html鏈接到cgi腳本的拜訪方式。你可以把cgi腳本放置在web-inf/cgi 名目下(注重,web-inf是一個(gè)平安的地方,你可以把一些不想被用戶(hù)看見(jiàn)或基于平安考慮不想裸露的文件放在此處),或者你也可以把cgi腳本放置在context下的其他名目下,并為cgi servlet調(diào)節(jié)cgipathprefix初始化參數(shù)。這就指定的cgi servlet的實(shí)際位置,且不能與上一步指定的url重名。重新啟動(dòng)tomcat,你的cgi就可以運(yùn)行了。在tomcat中,cgi程序缺省放置在web-inf/cgi名目下,正如前面所提醒的那樣,web-inf名目受庇護(hù)的,通過(guò)客戶(hù)端的掃瞄器無(wú)法窺探到其中內(nèi)容,所以對(duì)于放置含有密碼或其他敏感信息的cgi腳本而言,這是一個(gè)十分好的地方。為了兼容其他服務(wù)器,盡管你也可以把cgi腳本保存在傳統(tǒng)的/cgi-bin名目,但要知道,在這些名目中的文件有可能被網(wǎng)上奇怪的沖浪者看到。另外,在unix中,請(qǐng)確定運(yùn)行tomcat的用戶(hù)有執(zhí)行cgi腳本的權(quán)限。九、轉(zhuǎn)變tomcat中的jsp編譯器(jsp compiler)在tomcat 4.1(或更高版本,也許),j

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論