1、 引言
基于Web技術(shù)的Internet/Intranet近年來(lái)已經(jīng)得到了廣泛的應用,Intranet是以TCP/IP協(xié)議為基礎、以Web為核心的企業(yè)內部網(wǎng),用戶(hù)通過(guò)低成本、簡(jiǎn)單易用的客戶(hù)瀏覽器就能隨時(shí)隨地到企業(yè)的Web站點(diǎn)上查閱自己所需的數據。瀏覽器客戶(hù)端操作界面的一致性避免了C/S模式客戶(hù)端程序的多樣性,而服務(wù)器端的開(kāi)放和基于標準的連接方案使企業(yè)很方便地通過(guò)Internet同外界聯(lián)系;同時(shí),Web信息動(dòng)態(tài)的、交互式的發(fā)布方式從根本上改變了企業(yè)的服務(wù)質(zhì)量,增加了企業(yè)的商業(yè)機會(huì )。
在許多用戶(hù)看來(lái),一個(gè)Web網(wǎng)站的成敗主要在于它所提供的內容和功能,而支持這些內容和功能的Web服務(wù)器起著(zhù)非常重要的作用。
2、 Tomcat容器
Tomcat是一個(gè)免費的開(kāi)源的Serlvet容器,它是Apache基金會(huì )的Jakarta項目中的一個(gè)核心項目,由Apache,Sun和其它一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規范總能在Tomcat中得到體現。
Tomcat是穩固的獨立的Web服務(wù)器與Servlet Container,不過(guò),其Web服務(wù)器的功能則不如許多更健全的Web服務(wù)器完整,如Apache Web服務(wù)器(舉例來(lái)說(shuō),Tomcat沒(méi)有大量的選擇性模塊)。不過(guò),Tomcat是自由的開(kāi)源軟件,而且有許多高手致力于其發(fā)展。
2.1 Linux下安裝Tomcat
在安裝Tomcat之前需要安裝j2sdk(Java 2 Software Development Kit),安裝j2sdk的步驟如下:
1)到http://www.java.sun.com下載j2sdk ,如j2sdk-1_4_2_04-linux-i586-rpm.bin。
2)在終端中轉到j(luò )2sdk-1_4_2_04-linux-i586-rpm.bin所在的目錄,輸入命令chmod +x j2sdk-1_4_2_04-linux-i586-rpm.bin,添加執行的權限。
3)執行命令./j2sdk-1_4_2_04-linux-i586-rpm.bin,生成j2sdk-1_4_2_04-linux-i586.rpm的文件。
4)執行命令chmod +x j2sdk-1_4_2_04-linux-i586.rpm,給j2sdk-1_4_2_04-linux-i586.rpm添加執行的權限。
5)執行命令 rpm –ivh j2sdk-1_4_2_04-linux-i586.rpm ,安裝j2sdk。
6)安裝界面會(huì )出現授權協(xié)議,按Enter鍵接受,把j2sd安裝在/usr/java/j2sdk1.4.2_04。
7)設置環(huán)境變量,在 /etc/profile.d/目錄下建立文件java.sh,文件的內容如下:
#set java environment
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
8)執行命令chmod 755 /etc/profile.d/java.sh,給java.sh分配權限。
9)在終端中分別執行命令javac –help和java –version,如果看到有關(guān)的信息,則表示j2sdk已成功安裝。
接下來(lái)安裝tomcat,安裝tomcat的步驟如下:
1)訪(fǎng)問(wèn)http://jakarta.apache.org/tomcat/index.html,下載二進(jìn)制版的tomcat,如jakarta-tomcat-5.5.10.tar.gz,解壓到/usr/local目錄:
cd /usr/local
gzip –zxvf jakarta-tomcat-5.5.10.tar.gz
2)修改$tomcat/bin/startup.sh和shutdown.sh文件,
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CATALINA_HOME=/usr/local/tomcat-5.5.10
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
3)執行startup.sh即可在http://localhost:8080/ 訪(fǎng)問(wèn)到tomcat的缺省面頁(yè).
2.2單獨運行Tomcat的優(yōu)點(diǎn)
1)容易架設。下載Tomcat,設定一些配置,就完成了。不需要花費時(shí)間將Web服務(wù)器的連接器整合至其它的Web服務(wù)器中。
2)不需要擔心連接器。永遠不需要排除在其它Web服務(wù)器與Tomcat之間的任何性能或聯(lián)機方面的問(wèn)題。
3)有較佳的安全防護。相對于其它以C、C++所編寫(xiě)的Web服務(wù)器,Tomcat比較能忍受遠程緩沖區溢位的攻擊。因為T(mén)omcat的Java虛擬機是位于網(wǎng)絡(luò )及操作系統之間,它可以防止幾乎所有類(lèi)型的緩沖區溢位攻擊。使用Tomcat的安全防護領(lǐng)域,可以指定對各個(gè)資源的訪(fǎng)問(wèn)。
4)容易移植??梢詫omcat服務(wù)器(以及應用程序)移植到不同的服務(wù)器、操作系統甚至架構上。因為T(mén)omcat是以Java編寫(xiě)的,因此可以將其整個(gè)目錄結構的內容復制到其它計算機上運行,而完全不需要任何改變,甚至于新的計算機的架構與原來(lái)的不同也一樣。
2.3單獨運行Tomcat的缺點(diǎn)
1)Tomcat的支持軟件比較少。Tomcat內建Web服務(wù)器的支持軟件比Apache httpd Web服務(wù)器少。
2)Tomcat的Web服務(wù)器功能少。相對于Tomcat Web服務(wù)器,Apache httpd服務(wù)器有更完整的功能。
3)雖然Tomcat運行速度快,但還沒(méi)有Apache httpd快。Tomcat服務(wù)器比Apache httpd慢,不過(guò),它還在改進(jìn)中,而且仍然非???,快到足以運行今日大多數的企業(yè)網(wǎng)站,只是在提供靜態(tài)頁(yè)面內容上沒(méi)有Apache快。
3、 Apache Web服務(wù)器
Apache是根據NCSA的服務(wù)器發(fā)展而來(lái)的,NCSA是最早出現的Web服務(wù)器程序之一,由伊利諾斯大學(xué)Urbana-Champaign分校的美國國家超級計算應用中心開(kāi)發(fā)。在發(fā)展初期,Apache主要是一個(gè)基于UNIX系統的服務(wù)器,它的宗旨就是建成一個(gè)基于UNIX系統的、功能更強、效率更高并且速度更快的WWW服務(wù)器,這就決定了它是從其他的服務(wù)器演變而來(lái)的,并且添加了大量補丁來(lái)增強它在某一方面的性能,所以它就被命名為“APA+CHy Server(一個(gè)補丁組成的服務(wù)器)”。發(fā)展到今天,Apache已經(jīng)被移植到很多平臺上了。
Apache的開(kāi)發(fā)遵循GPL協(xié)議,由全球的志愿者一起開(kāi)發(fā)和維護。在保持強大的功能及不斷更新的同時(shí),它仍然是免費的,并且公開(kāi)源代碼。
3.1 安裝Apache服務(wù)器
可以通過(guò)以下三種方法安裝Apache服務(wù)器。
1)如果安裝的Linux版本中帶用Apache的話(huà),就在選擇所要安裝的服務(wù)器的時(shí)候,將httpd這個(gè)服務(wù)選上,Linux安裝程序將自動(dòng)完成Apache的安裝工作,并做好基本的配置。
2)使用可執行文件軟件包,這比較適合那些對編譯工作不是太熟悉的初級用戶(hù),因為它相對比較簡(jiǎn)單。下載軟件包apache_1.2.4.e.tar.gz ,執行命令tar xvzf apache_1.2.4.e.tar.gz 完成安裝工作。如果使用的是RedHat Linux的話(huà),也可以下載apache_1.2.4.rpm軟件安裝包,然后使用rpm –ivh apache_1.2.4.rpm命令安裝。
3)如果想把Apache服務(wù)器充分利用起來(lái)的話(huà),就一定要自己編譯Apache 定制其功能。 下載包含Apache源代碼的軟件包apache_1.2.4.tar.gz;然后用tar命令將它解開(kāi);將當前目錄改變?yōu)锳pache源代碼發(fā)行版的src目錄;將配置樣本文件(Configuration.tmpl)復制為Configuration文件;編輯Configuration文件中的配置選項:
Makefile配置選項:一些編譯選項:
. “CC=”一行指定用什么編譯軟件編譯,一般為“CC=gcc”;如果需要將額外的標志(參數)指定給C編譯軟件,可以使用:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
如果系統需要特殊的庫和包含文件,可以在這里指定它們:
EXTRA_LIBS=
EXTRA_INCLUDES=
如果要改變代碼優(yōu)化設置的話(huà),須將下面一句去掉注釋?zhuān)缓蟾某伤枰闹担?
#OPTIM=-O2
Rule配置選項:用來(lái)決定需要什么功能,一般情況下無(wú)需改變。
模塊配置:模塊是Apache的組成部分,它為Apache內核增加新功能。通過(guò)使用模塊配置,可以自定義在A(yíng)pache服務(wù)器中需要什么功能,這個(gè)部分也是Apache靈活性的表現。模塊配置行如下所示:
AddModule modules/standard/mod_env.o
如果需要Apache服務(wù)器具備什么功能,就將那個(gè)模塊用AddModule語(yǔ)句加到配置文件Configuration中去。
下面列出了Apache的模塊功能:
模塊名 功能 缺省
mod_access 提供基于主機的訪(fǎng)問(wèn)控制命令 y
mod_actions 能夠運行基于MIME類(lèi)型的CGI腳本或HTTP請求方法 y
mod_alias 能執行URL重定向服務(wù) y
mod_asis 使文檔能在沒(méi)有HTTP頭標的情況下被發(fā)送到客戶(hù)端 y
mod_auth 支持使用存儲在文本文件中的用戶(hù)名、口令實(shí)現認證 y
mod_auth_dbm 支持使用DBM文件存儲基本HTTP認證 n
mod_auth_mysql 支持使用MySQL數據庫實(shí)現基本HTTP認證 n
mod_auth_anon 允許以匿名方式訪(fǎng)問(wèn)需要認證的區域 y
mod_auth_external 支持使用第三方認證 n
mod_autoindex 當缺少索引文件時(shí),自動(dòng)生成動(dòng)態(tài)目錄列表 y
mod_cern_meta 提供對元信息的支持 n
mod_cgi 支持CGI y
mod_dir 能夠重定向任何對不包括尾部斜杠字符命令的請求 y
mod_env 使你能夠將環(huán)境變量傳遞給CGI或SSI腳本 n
mod_expires 讓你確定Apache在服務(wù)器響應請求時(shí)如何處理Expires y
mod_headers 能夠操作HTTP應答頭標 y
mod_imap 提供圖形映射支持 n
mod_include 使支持SSI n
mod_info 對服務(wù)器配置提供了全面的描述 y
mod_log_agent 允許在單獨的日志文件中存儲用戶(hù)代理的信息 n
mod_log_config 支持記錄日志 y
mod_log_referer 提供了將請求中的Referer頭標寫(xiě)入日志的功能 n
mod_mime 用來(lái)向客戶(hù)端提供有關(guān)文檔的元信息 y
mod_negotiation 提供了對內容協(xié)商的支持 y
mod_setenvif 使你能夠創(chuàng )建定制環(huán)境變量 y
mod_speling 使你能夠處理含有拼寫(xiě)錯誤或大小寫(xiě)錯誤的URL請求 n
mod_status 允許管理員通過(guò)WEB管理Apache y
mod_unique_id 為每個(gè)請求提供在非常特殊的條件下保證是唯一的標識 n
在src目錄下執行:“. /configure”;
編譯Apache:執行命令“make”;
將編譯好的可執行文件httpd復制到/etc/httpd/bin目錄下;將Apache發(fā)行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件復制到/etc/httpd/conf目錄下。到此為止,安裝完成。
3.1單獨運行Apache httpd的優(yōu)點(diǎn)
1)Apache httpd比Tomcat內建的Web服務(wù)器快。
2)較多的軟件支持。Apache httpd有龐大的支持軟件鏈接庫。
3)啟動(dòng)與停止快。一般來(lái)說(shuō),Apache httpd的啟動(dòng)與停止時(shí)間都比Tomcat短。
3.2單獨運行Apache httpd的缺點(diǎn)
1)架設比較困難。比起單獨運行Tomcat,安裝Apache Web服務(wù)器并讓它與Tomcat協(xié)同運行要復雜很多。
2)會(huì )拖慢動(dòng)態(tài)網(wǎng)頁(yè)內容的服務(wù)。
3)安全漏洞。Apache httpd比較容易受到緩沖區溢位的攻擊。
4)升級比較復雜。
4、 Tomcat與Apache的整合
有幾種將Tomcat整合到Apache httpd Web服務(wù)器的方法:
1) 架使用不同的端口號分擔負載。
該方法是最容易實(shí)現的,只需要在現成的網(wǎng)頁(yè)目錄中假如URL以連接到在同一臺Web服務(wù)器機器上的Tomcat Web服務(wù)器端口(如8080)。實(shí)際上還是執行兩個(gè)完整的Web服務(wù)器程序,彼此之間并沒(méi)有真正的整合。
2) 從Apache將請求發(fā)送至Tomcat的代理服務(wù)器。
該方法會(huì )在主服務(wù)器中使用HTTP的代理機制。代理機制常會(huì )用來(lái)將來(lái)自網(wǎng)關(guān)上運行的Web服務(wù)器的Web信息流重新路由至外部因特網(wǎng)上的網(wǎng)站。不過(guò),也可以用來(lái)將網(wǎng)站區域或目錄的信息流重導至Tomcat Web服務(wù)器。
3) 使用mod_jk2連接器。
該方法使用運行于現有的Apache httpd Web服務(wù)器之內的連接器模塊(如mod_jk),并經(jīng)由特定的協(xié)議快速地將請求轉送至Tomcat。這是將Tomcat連接至Apache httpd的標準方式。
4) 單一進(jìn)程中執行兩個(gè)程序。
該方法通過(guò)讓JVM在A(yíng)pache httpd的進(jìn)程空間中運行的方式,可以提供“完全整合”的功能。這是最有效的辦法,但也是最依賴(lài)于服務(wù)器的實(shí)現。
【參考文獻】
[1] Jason Brittain,Ian F. Darwin,Tomcat: The Definitive Guide,2003
[2] Jason Brittain,Ian F. Darwin著(zhù),O’Reilly Taiwan譯,朱恩從改編,Tomcat權威指南,2004
[3]http://www.apache.org
[4]http://www.bb.gilet.edu.cn
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。