




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
通向架構(gòu)師的道路(第一天)之Apache整合Tomcat一、先從J2EE工程的通用架構(gòu)說起這是一個(gè)通用的Web即B/S工程的架構(gòu),它由:ü
WebServerü
AppServerü
DBServer三大部分組成,其中:2
WebServer置于企業(yè)防火墻外,這個(gè)防火墻,大家可以認(rèn)為是一個(gè)CISCO路由器,然后在CISCO路由器上開放了兩個(gè)端口為:80和443。80端口:用于正常的http訪問443端口:用于https訪問,即如果你在ie里打入https://xxx.xxx.xx這樣的地址,默認(rèn)走的是443這個(gè)端口。
WebServer專門:用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等圖片格式文件、TXT、VBSCRIPT、PHP等一切一切“靜態(tài)”網(wǎng)頁內(nèi)容。2
AppServer置于企業(yè)防火墻內(nèi),它和WebServer之間的連接必須且一定為內(nèi)部IP連接。外部IP:即InternetIP地址,我們的web服務(wù)器一般會(huì)有一個(gè)內(nèi)部IP一個(gè)外部IP,因此在這里,我們的AppServer沒有任何外部IP,只有內(nèi)部IP,所以我在這邊說AppServer與WebServer只能以內(nèi)部IP形式連接。打比方說我們用的是tomcat,它的端口為8080,那么這個(gè)ip地址上的8080端口只能由任何內(nèi)部ip才能訪問,外部的internet是訪問不了的,這樣做就是為了安全。AppServer用于解析我們的任何需要Java編譯器才能解析的“動(dòng)態(tài)”網(wǎng)頁,其實(shí)AppServer本身也能解析任何靜態(tài)網(wǎng)頁的。那么我們這樣來想一下:我們讓負(fù)責(zé)專門解析靜態(tài)網(wǎng)頁的WebServer來解析html等內(nèi)容,而讓AppServer專門用于解析任何需要Java編譯器才能解析的東西,讓它們“兩人”各司其職。這樣作的好處:1)
為AppServer“減壓”,同時(shí)也提高了performance2)
不用再把8080這個(gè)端口暴露在internet上了,也很安全,必經(jīng)我們的appserver上可是有我們的代碼的,就算是編譯過的代碼也容易被“反編譯”,這是很不安全的。3)
為將來的進(jìn)一步的“集群擴(kuò)展”打好了基礎(chǔ)2
DBServer打比方說我們用的是Oracle,它需要通過1521與AppServer進(jìn)行連接是不是?那么這個(gè)1521我們稱為數(shù)據(jù)庫(kù)連接端口,如果把它暴露在Internet上,是不是在危險(xiǎn)了點(diǎn)?就算我們的密碼很復(fù)雜,但對(duì)于高明的黑客來說,要攻破你的口令也只是時(shí)間上的問題而己。因此我們把我們的DBServer也和AppServer一樣,置于內(nèi)網(wǎng)的防火墻。任何的DB連接與管理只能通過內(nèi)網(wǎng)即在公司企業(yè)內(nèi)部來訪問,就是這個(gè)道理。二、動(dòng)手來架構(gòu)2.1Oracle數(shù)據(jù)加的安裝與配置DB(Oracle)我已經(jīng)為大家準(zhǔn)備好了,連接信息為:IP:10.225.10x.xxPort:1521Username/Password:xxx/xxxSid:Jcoedb1url:jdbc:oracle:thin:@10.225.10x.xx:1521:xxx所以,根據(jù)上述的架構(gòu),我們可以把如下這樣的一份清單丟給NSS或者是相關(guān)的網(wǎng)絡(luò)管理部門,讓他們給我們開通相應(yīng)的端口:WebServer對(duì)外IP:xxx.xxx.xxx.xxx
對(duì)內(nèi)IP:10.225.xxx.xxx向internet開通80與443端口AppServer對(duì)內(nèi)IP:10.225.xxx.xxx只對(duì)10.225.段的ip開放8080,8009等端口,DbServer對(duì)內(nèi)IP:10.225.xxx.xxx只對(duì)10.225.段的ip開放1521端口2.2AppServer的安裝直接解壓tomcat至你的本地如:d:\tomcat,我這邊用的目錄名叫tomcat2,大家隨意,最好名字能夠越簡(jiǎn)單越好d:\tomcat或者c:\tomcat就行,不要放得太“深”。2.3WebServer的安裝我們?cè)谶@邊將安裝ApacheForWin2.2.x,它將占用你機(jī)器的80和443端口。因此如果你機(jī)器上有任何程序占用你的80和443端口,必須將它關(guān)閉掉,比如說:我們裝有微軟的IIS,這本身也是一個(gè)WebServer,那么請(qǐng)你將它關(guān)閉:ControlPanel->AdministrativeTools->Service,找到IISAdmin和,將它全部關(guān)閉并將啟動(dòng)方式設(shè)為:manual以便于不用每次重啟后再要去手動(dòng)關(guān)閉一下。然后用netstat–ano找到任何還在占用80端口的程序,將它關(guān)閉掉。2.4
開始安裝ApacheHttpServer我們將安裝這個(gè)版本的apachehttpserver作為我們今后一直使用的WebServer這邊的servername你們要填入自己的server的真實(shí)名,不能用我這個(gè),這個(gè)servername如:只能夠我用,這個(gè)名稱是全局唯一的,和你的IP一樣。選全部安裝裝完后你會(huì)多出一個(gè)這樣的圖標(biāo)來,點(diǎn)擊該圖標(biāo),里面有用于控制apachehttpserver的啟動(dòng)、停止與重啟等操作選項(xiàng)。同時(shí)在你們的“服務(wù)”面板中,也能發(fā)現(xiàn)這樣的一個(gè)服務(wù)項(xiàng),它啟動(dòng)時(shí)默認(rèn)是隨著系統(tǒng)的啟動(dòng)而啟動(dòng)的,我們把它改成“手動(dòng)”吧,因?yàn)閷砦覀冞€要安裝IBMHttpServer來作練習(xí)。裝完后,在Apache2.2啟動(dòng)的前提下,打開一個(gè)ie輸入http://localhost,你將會(huì)得到這樣的一個(gè)頁面,就說明你的Apache的安裝是成功的。2.5Apache的配置學(xué)Java的人,必須會(huì)這個(gè)Apache的配置,要不然你怎么模擬環(huán)境、搭建環(huán)境和架構(gòu)環(huán)境?光會(huì)Coding是遠(yuǎn)遠(yuǎn)不夠的,你將永遠(yuǎn)只配作個(gè)碼農(nóng)。。。嘿嘿嘿!有很多人發(fā)覺到了后面JAVA學(xué)不上去了,關(guān)鍵因素在于:配置。你會(huì)配環(huán)境了,那么你就能模擬任何客戶方、開發(fā)方的環(huán)境。你會(huì)配環(huán)境了,你的代碼將來上線時(shí)才能成功運(yùn)行。你會(huì)配環(huán)境了,所以整個(gè)工程的技術(shù)核心就是你。跟著我的教程,你們將會(huì)安裝和運(yùn)行達(dá)近百個(gè)各種軟件與配置,搞得你一股臭味一股臭味?。∧銣?zhǔn)備好了沒有?當(dāng)然,不用怕,因?yàn)槲业呐渲枚际菍?shí)際運(yùn)行的環(huán)境,所以網(wǎng)上的一些東西你可以不用去看,因?yàn)楹芏嗳硕际窃诰W(wǎng)上進(jìn)行拷貝、復(fù)制,有時(shí)也不經(jīng)過驗(yàn)證,會(huì)讓你走很多的彎路到頭來還是落得個(gè)BUG一天世界,就看我的教程吧。Apache的配置主要集中在httpd.conf文件,它位于你的安裝目錄,比如:D:\tools\httpd\conf\我們用ultraedit或者相關(guān)文本編輯工具打開它,來看它的內(nèi)容:先來查找到如下這一行:#ServerName我們可以得到如下這一行內(nèi)容:#ServerName:80這就是我們的主機(jī)名了,我們可以將前面的“#”去掉,并將其改為:ServerName5:80改完后存盤,在重啟你的Apache2.2前我們先測(cè)試一下我們的Apache的配置文件是否改得對(duì):如果在你點(diǎn)了TestConfiguration后,黑屏一閃而過,說明你的改動(dòng)無誤,否則這個(gè)黑屏?xí)恢蓖A粼诋?dāng)前狀態(tài),并且告訴你,你的配置改動(dòng)有錯(cuò),錯(cuò)在哪里。重新啟動(dòng)你的Apache找到如下這行:DocumentRoot你會(huì)發(fā)下有這樣的一行內(nèi)容:DocumentRoot"D:/tools/httpd/htdocs"這個(gè)叫作DocumentRoot即webroot,即:發(fā)布目錄,發(fā)布在這個(gè)目錄下的任何工程都會(huì)在Apache服務(wù)開啟時(shí)被裝載成標(biāo)準(zhǔn)的web工程,我們現(xiàn)在動(dòng)手來把這個(gè)WebRoot定位到我們自己的發(fā)布目錄中去吧。DocumentRoot"d:/www"我們把它改到了d盤的www目錄中去了,然后我們?cè)谠撃夸浿蟹湃胍粋€(gè)index.html文件,內(nèi)容為:<html><body><h1>Heyman,apacheworks!</h1></body></html>重啟我們的Apache服務(wù),來測(cè)試一下:嘿嘿,我們得到了什么?禁止訪問,為什么?找到下面這一段:<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
denyfromall</Directory>看到了沒?現(xiàn)在,把這個(gè)”denyfromall”改成”allowfromall’吧。<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
allowfromall</Directory>修改完后重啟你的Apache服務(wù)Ok,我們的Apache的發(fā)布目錄已經(jīng)成功更改到了d:\www目錄下了,我們?cè)賮碜鲆粋€(gè)實(shí)驗(yàn):我們?cè)贗E瀏覽器中輸入:http://localhost/css/,我們看到了什么?這還了得,用戶如果是個(gè)初級(jí)黑客都可以知道我們的服務(wù)器上有哪些文件,哪些目錄甚至可以直接看到我們的文件內(nèi)容,怎么辦?找到下面這行OptionsFollowSymLinksindexes把它注掉改成下面這樣#OptionsFollowSymLinksindexesOptionsNone不要急,再往下找,還有OptionsIndexesFollowSymLinks又來一個(gè),再改掉#OptionsIndexesFollowSymLinksOptionsNone改完這兩條后重啟你的Apache服務(wù)再次打開一個(gè)新的IE,輸入:http://localhost/css/,我們看到了如下的界面:好了,Apache的基本配置完成了即:1)
基本的安全配置,不允許目錄訪問2)
把WebRoot改到另一個(gè)物理目錄上而不使用Apache自帶的WebRoot目錄2.6
整合Apache與TomcatApache(WebServer)負(fù)責(zé)處理HTML靜態(tài)內(nèi)容;Tomcat(AppServer)負(fù)責(zé)處理動(dòng)態(tài)內(nèi)容;其實(shí)就是上述這樣的一個(gè)架構(gòu),下面是原理1)
Apache裝有一個(gè)模塊,這個(gè)模塊叫mod_jk2)
Apache通過80端口負(fù)責(zé)解析任何靜態(tài)web內(nèi)容3)
任何不能解析的內(nèi)容,用表達(dá)式告訴mod_jk,讓mod_jk派發(fā)給相關(guān)的appserver去解釋。通過上述的文字描述我們可以得知:1)
我們需要在Apache中先裝一個(gè)mod_jk2)
我們需要在httpd.conf中寫點(diǎn)表達(dá)式下面來實(shí)現(xiàn)。1)
把mod_jk-1.2.31-httpd-2.2.3.so手工copy進(jìn)我們的Apache安裝目錄的modules目錄下,這個(gè)文件的全名叫:mod_jk-1.2.31-httpd-2.2.3.so,大家可以從ftp上的“/JavaArchitect/mod_jk/”目錄中獲取,因?yàn)檫@個(gè)文件是我用C++在本地重新編譯過的,網(wǎng)上下載的是src即源碼,省去大家再去編譯的時(shí)間了,而且一些其它網(wǎng)上下載的mod_jk.so是無法使用的。2)
用ultraedit打開httpd.conf文件,跑到文件最后面加入以下幾行:LoadModulejk_modulemodules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFileconf/pertiesJkLogFilelogs/mod_jk.log<VirtualHost*>ServerAdminlocalhostDocumentRootd:/www/ServerNamelocalhostDirectoryIndexindex.htmlindex.htmindex.jspindex.actionErrorLoglogs/shsc-error_log.txtCustomLoglogs/shsc-access_log.txtcommon
JkMount/*WEB-INFajp13JkMount/*j_spring_security_checkajp13JkMount/*.actionajp13JkMount/servlet/*ajp13JkMount/*.jspajp13JkMount/*.doajp13JkMount/*.actionajp13
JkMount/*fckeditor/editor/filemanager/connectors/*.*ajp13JkMount/fckeditor/editor/filemanager/connectors/*ajp13</VirtualHost>關(guān)鍵的是這兩句:LoadModulejk_modulemodules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFileconf/perties代表:ü
Apache載入一個(gè)額外的插件,用于連接tomcat。ü
連接時(shí)的配置參數(shù)描述位于Apache安裝目錄的/conf目錄下的一個(gè)叫perties文件中,mod_jk一般使用ajp13協(xié)議連接,使用的是tomcat的8009端口。3)
Wperties文件內(nèi)容如下:workers.tomcat_home=d:/tomcat2workers.java_home=C:/jdk1.6.32ps=/worker.list=ajp13worker.ajp13.port=8009worker.ajp13.host=localhostworker.ajp13.type=ajp134)
告訴我們的Apache,哪些是要交給tomcat來解析,除此之外都由Apache本身來解析:<VirtualHost*>ServerAdminlocalhostDocumentRootd:/www/ServerNamelocalhostDirectoryIndexindex.htmlindex.htmindex.jspindex.actionErrorLoglogs/shsc-error_log.txtCustomLoglogs/shsc-access_log.txtcommon
JkMount/*WEB-INFajp13JkMount/*j_spring_security_checkajp13JkMount/*.actionajp13JkMount/servlet/*ajp13JkMount/*.jspajp13JkMount/*.doajp13JkMount/*.actionajp13
JkMount/*fckeditor/editor/filemanager/connectors/*.*ajp13JkMount/fckeditor/editor/filemanager/connectors/*ajp13</VirtualHost>大家看到?jīng)],所有的/servlet/*都由tomcat負(fù)責(zé)解析,所有的jsp,.do,.action都由tomcat解析。此處還有一個(gè)特殊的/fckeditor,這個(gè)是我們使用的一個(gè)博客編輯器,這個(gè)因?yàn)槭莝ervlet的,因此也需要交給tomcat鐵析。5)
將/cbbs工程布署到tomcat的webapps目錄下6)
將/cbbs同樣手工copy一份到d:/www目錄下7)
刪除d:/www/cbbs/WEB-INF這個(gè)目錄,嘿嘿,因?yàn)閐:/www下的東西是由Apache解析的,所有的WEB-INF下的都是Java,我們只需要布署在tomcat下即可,是不是?8)
重啟tomcat,重啟Apache,在ie中直接輸入:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人防工程制式銷售合同范本
- 分散采購(gòu)服務(wù)合同范本
- 農(nóng)村燃?xì)獍惭b合同范例
- 協(xié)助寵物國(guó)際托運(yùn)合同范本
- 農(nóng)田租賃合同范本
- 專利轉(zhuǎn)讓入股合同范本
- 養(yǎng)魚合作轉(zhuǎn)讓合同范本
- 公版采購(gòu)合同范本
- 單位解聘教師合同范本
- 買賣中介公司合同范本
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)教案
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 新版人音版小學(xué)音樂一年級(jí)下冊(cè)全冊(cè)教案
- 2024年黑龍江建筑職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)全面
- MOOC 跨文化交際通識(shí)通論-揚(yáng)州大學(xué) 中國(guó)大學(xué)慕課答案
- CBT主要技術(shù)精品課件
- 常用液壓元件型號(hào)對(duì)照表230
- 項(xiàng)目章程模板范文
- 泰山產(chǎn)業(yè)領(lǐng)軍人才工程系統(tǒng)
- 輪扣架支模體系材料量計(jì)算
- 主題班會(huì)教案《讀書好讀好書好讀書》班會(huì)方案
評(píng)論
0/150
提交評(píng)論