亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

1-通向架構師的道路之Apache整合Tomcat

2024-06-28 15:59:52
字體:
來源:轉載
供稿:網友

一、先從J2EE工程的通用架構說起

這里寫圖片描述

這是一個通用的Web即B/S工程的架構,它由:

Web ServerApp ServerDB Server

三大部分組成,其中:

1.1 Web Server

置于企業防火墻外,這個防火墻,大家可以認為是一個CISCO路由器,然后在CISCO路由器上開放了兩個端口為:80和443。

80端口:用于正常的http訪問。 443端口:用于https訪問,即如果你在ie里打入https://xxx.xxx.xx這樣的地址,默認走的是443這個端口。

WebServer專門用于解析HTML、JS(javaScript)、CSS、JPG/GIF等圖片格式文件、TXT、VBSCRIPT、php等一切一切“靜態”網頁內容。

1.2 App Server

置于企業防火墻內,它和Web Server之間的連接必須且一定為內部IP連接。

外部IP:即Internet IP地址,我們的web服務器一般會有一個內部IP一個外部IP,因此在這里,我們的App Server沒有任何外部IP,只有內部IP,所以我在這邊說App Server與Web Server只能以內部IP形式連接。

打比方說我們用的是tomcat,它的端口為8080,那么這個ip地址上的8080端口只能由任何內部ip才能訪問,外部的internet是訪問不了的,這樣做就是為了安全。

App Server用于解析我們的任何需要Java編譯器才能解析的“動態”網頁,其實App Server本身也能解析任何靜態網頁的。

那么我們這樣來想一下: 我們讓負責專門解析靜態網頁的Web Server來解析html等內容,而讓App Server專門用于解析任何需要Java編譯器才能解析的東西,讓它們“兩人”各司其職。這樣作的好處:

為App Server“減壓”,同時也提高了performance。不用再把8080這個端口暴露在internet上了,也很安全,必經我們的app server上可是有我們的代碼的,就算是編譯過的代碼也容易被“反編譯”,這是很不安全的。為將來的進一步的“集群擴展”打好了基礎。

1.3 DB Server

打比方說我們用的是Oracle,它需要通過1521與App Server進行連接是不是?那么這個1521我們稱為數據庫連接端口,如果把它暴露在Internet上,是不是在危險了點?就算我們的密碼很復雜,但 對于高明的黑客來說,要攻破你的口令也只是時間上的問題而己。

因此我們把我們的DB Server也和App Server一樣,置于內網的防火墻。任何的DB連接與管理只能通過內網即在公司企業內部來訪問,就是這個道理。

二、動手來架構

2.1 Oracle數據庫的安裝與配置

DB(Oracle)我已經為大家準備好了,連接信息為:

連接字段 連接值
IP 10.225.10x.xx
Port 1521
Username/PassWord xxx/xxx
Sid Jcoedb1
url jdbc:oracle:thin:@10.225.10x.xx:1521:xxx

所以,根據上述的架構,我們可以把如下這樣的一份清單丟給NSS或者是相關的網絡管理部門,讓他們給我們開通相應的端口:

服務器 具體信息
Web Server 對外IP: xxx.xxx.xxx.xxx 對內IP:10.225.xxx.xxx向internet開通80與443端口
App Server 對內IP: 10.225.xxx.xxx只對10.225.段的ip開放8080,8009等端口
Db Server 對內IP: 10.225.xxx.xxx只對10.225.段的ip開放1521端口

2.2 App Server的安裝

直接解壓tomcat至你的本地如:d:/tomcat,我這邊用的目錄名叫tomcat2,大家隨意,最好名字能夠越簡單越好d:/tomcat或者c:/tomcat就行,不要放得太“深”。

2.3 Web Server的安裝

我們在這邊將安裝Apache For Win 2.2.x,它將占用你機器的80和443端口。因此如果你機器上有任何程序占用你的80和443端口,必須將它關閉掉,比如說:

我們裝有微軟的IIS,這本身也是一個WebServer,那么請你將它關閉:

ControlPanel->Administrative Tools->Service,找到IISAdmin和,將它全部關閉并將啟動方式設為:manual,以便于不用每次重啟后再要去手動關閉一下。

然后用netstat –ano找到任何還在占用80端口的程序,將它關閉掉。

2.4 開始安裝Apache Http Server

安裝時只需按照提示一步一步往下做就行。

裝完后你會多出一個這樣的圖標來,點擊該圖標,里面有用于控制apache http server的啟動、停止與重啟等操作選項。同時在你們的“服務”面板中,也能發現這樣的一個服務項,它啟動時默認是隨著系統的啟動而啟動的,我們把它改 成“手動”吧,因為將來我們還要安裝IBM Http Server來作練習。

裝完后,在Apache2.2啟動的前提下,打開一個ie輸入http://localhost,你將會得到這樣的一個頁面,就說明你的Apache的安裝是成功的。 這里寫圖片描述

2.5 Apache的配置

學Java的人,必須會這個Apache的配置,要不然你怎么模擬環境、搭建環境和架構環境?光會Coding是遠遠不夠的,你將永遠只配作個碼農。。。嘿嘿嘿!有很多人發覺到了后面JAVA學不上去了,關鍵因素在于:配置。

你會配環境了,那么你就能模擬任何客戶方、開發方的環境。 你會配環境了,你的代碼將來上線時才能成功運行。 你會配環境了,所以整個工程的技術核心就是你。

跟著我的教程,你們將會安裝和運行達近百個各種軟件與配置,搞得你一股臭味一股臭味?。?/p>

你準備好了沒有?

當然,不用怕,因為我的配置都是實際運行的環境,所以網上的一些東西你可以不用去看,因為很多人都是在網上進行拷貝、復制,有時也不經過驗證,會讓你走很多的彎路到頭來還是落得個BUG一天世界,就看我的教程吧。

Apache的配置主要集中在httpd.conf文件,它位于你的安裝目錄,比如:

C:/PRogram Files (x86)/Apache Software Foundation/Apache2.2/conf

我們用ultraedit或者相關文本編輯工具打開它,來看它的內容:

先來查找到如下這一行:

#ServerName

我們可以得到如下這一行內容:

#ServerName shnlap93.cts.com:80

這就是我們的主機名了,我們可以將前面的“#”去掉,并將其改為:

ServerName 10.225.106.35:80

改完后存盤,在重啟你的Apache2.2前我們先測試一下我們的Apache的配置文件是否改得對:

這里寫圖片描述

如果在你點了Test Configuration后,黑屏一閃而過,說明你的改動無誤,否則這個黑屏會一直停留在當前狀態,并且告訴你,你的配置改動有錯,錯在哪里。

重新啟動你的Apache

找到如下這行:

DocumentRoot

你會發下有這樣的一行內容:

DocumentRoot "D:/tools/httpd/htdocs"

這個叫作DocumentRoot即webroot,即:發布目錄,發布在這個目錄下的任何工程都會在Apache服務開啟時被裝載成標準的web工程,我們現在動手來把這個WebRoot定位到我們自己的發布目錄中去吧。

DocumentRoot "d:/www"

我們把它改到了d盤的www目錄中去了,然后我們在該目錄中放入一個index.html文件,內容為:

Hey man, apache works!

重啟我們的Apache服務,來測試一下: 這里寫圖片描述

嘿嘿,我們得到了什么?禁止訪問,為什么? 找到下面這一段:

Options FollowSymLinksAllowOverride NoneOrder deny,allowdeny from all

看到了沒? 現在,把這個”deny from all”改成”allow from all’吧。

Options FollowSymLinksAllowOverride NoneOrder deny,allowallow from all

修改完后重啟你的Apache服務。 這里寫圖片描述

Ok,我們的Apache的發布目錄已經成功更改到了d:/www目錄下了,我們再來做一個實驗:

我們在IE瀏覽器中輸入: http://localhost/css/,我們看到了什么?

這里寫圖片描述

這還了得,用戶如果是個初級黑客都可以知道我們的服務器上有哪些文件,哪些目錄甚至可以直接看到我們的文件內容,怎么辦?

找到下面這行

Options FollowSymLinks indexes

把它注掉改成下面這樣

#Options FollowSymLinks indexesOptions None

不要急,再往下找,還有

Options Indexes FollowSymLinks

又來一個,再改掉

#Options Indexes FollowSymLinksOptions None

改完這兩條后重啟你的Apache服務

再次打開一個新的IE,輸入:http://localhost/css/,我們看到了如下的界面: 這里寫圖片描述

好了,Apache的基本配置完成了即:

基本的安全配置,不允許目錄訪問。把WebRoot改到另一個物理目錄上而不使用Apache自帶的WebRoot目錄。

2.6 整合Apache與Tomcat

Apache(Web Server)負責處理HTML靜態內容; Tomcat(App Server)負責處理動態內容;

這里寫圖片描述

其實就是上述這樣的一個架構,下面是原理:

Apache裝有一個模塊,這個模塊叫mod_jk。Apache通過80端口負責解析任何靜態web內容。任何不能解析的內容,用表達式告訴mod_jk,讓mod_jk派發給相關的app server去解釋。

通過上述的文字描述我們可以得知:

我們需要在Apache中先裝一個mod_jk。我們需要在httpd.conf中寫點表達式。

下面來實現。

1) 把 mod_jk-1.2.31-httpd-2.2.3.so手工copy進我們的Apache安裝目錄的modules目錄下。 2) 用ultraedit打開httpd.conf文件,跑到文件最后面加入以下幾行:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logServerAdmin localhostDocumentRoot d:/www/ServerName localhostDirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /*WEB-INF ajp13JkMount /*j_spring_security_check ajp13JkMount /*.action ajp13JkMount /servlet/* ajp13JkMount /*.jsp ajp13JkMount /*.do ajp13JkMount /*.action ajp13JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13JkMount /fckeditor/editor/filemanager/connectors/* ajp13

關鍵的是這兩句:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFile conf/workers.properties

代表:

Apache載入一個額外的插件,用于連接tomcat。連接時的配置參數描述位于Apache安裝目錄的/conf目錄下的一個叫workers.properties文件中,mod_jk一般使用ajp13協議連接,使用的是tomcat的8009端口。

3) Worker.properties文件內容如下:

workers.tomcat_home=d:/tomcat2workers.java_home=C:/jdk1.6.32ps=/worker.list=ajp13worker.ajp13.port=8009worker.ajp13.host=localhostworker.ajp13.type=ajp13

4) 告訴我們的Apache,哪些是要交給tomcat來解析,除此之外都由Apache本身來解析:

ServerAdmin localhostDocumentRoot d:/www/ServerName localhostDirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /*WEB-INF ajp13JkMount /*j_spring_security_check ajp13JkMount /*.action ajp13JkMount /servlet/* ajp13JkMount /*.jsp ajp13JkMount /*.do ajp13JkMount /*.action ajp13JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13JkMount /fckeditor/editor/filemanager/connectors/* ajp13

大家看到沒,所有的/servlet/*都由tomcat負責解析,所有的jsp, .do, .action都由tomcat解析。

此處還有一個特殊的/fckeditor,這個是我們使用的一個博客編輯器,這個因為是servlet的,因此也需要交給tomcat解析。

5) 將/cbbs工程布署到tomcat的webapps目錄下。 6) 將/cbbs同樣手工copy一份到d:/www目錄下。 7) 刪除d:/www/cbbs/WEB-INF這個目錄,嘿嘿,因為d:/www下的東西是由Apache解析的,所有的WEB-INF下的都是Java,我們只需要布署在tomcat下即可,是不是? 8) 重啟tomcat,重啟Apache,在ie中直接輸入: http://localhost/cbbs,使用sally/abcdefg登錄,操作一下,一切成功 Oh…yeah, tomcat+apache一步搞定。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩专区在线观看| 国产精品久久久999| 国产午夜精品视频免费不卡69堂| 欧美激情亚洲自拍| 欧美第一黄色网| 精品亚洲一区二区三区在线播放| 538国产精品一区二区免费视频| 国产拍精品一二三| 一区二区三区久久精品| 成人a视频在线观看| 欧美亚洲在线观看| 96sao精品视频在线观看| 国产一区二区三区三区在线观看| 欧美日韩一二三四五区| 激情亚洲一区二区三区四区| 国内精品久久久久伊人av| 日韩精品极品在线观看播放免费视频| 在线性视频日韩欧美| 中文字幕日韩有码| 国内成人精品视频| 成人精品久久一区二区三区| 日本精品久久久久久久| 精品国偷自产在线视频| 91亚洲人电影| 国产精品入口日韩视频大尺度| 国产精品极品美女粉嫩高清在线| 欧美激情va永久在线播放| 免费99精品国产自在在线| 精品亚洲国产视频| 4k岛国日韩精品**专区| 91视频88av| 久久久精品国产网站| 57pao成人国产永久免费| 亚洲无线码在线一区观看| 亚洲一区二区三区在线免费观看| 午夜精品三级视频福利| 色一情一乱一区二区| 高清一区二区三区四区五区| 久久久999成人| 美日韩精品免费观看视频| 欧美日韩福利视频| 97在线视频一区| 96pao国产成视频永久免费| 欧美日韩美女在线观看| 久久国产一区二区三区| 亚洲欧美国内爽妇网| 97视频在线观看成人| 久久深夜福利免费观看| 国产网站欧美日韩免费精品在线观看| 国产有码在线一区二区视频| 日韩av在线天堂网| 国产精品成人va在线观看| 日韩av影院在线观看| 在线亚洲午夜片av大片| 国产在线播放不卡| 欧美日韩国产一区二区| 色噜噜狠狠狠综合曰曰曰88av| 中日韩美女免费视频网站在线观看| 欧美国产日韩二区| 欧美日韩免费网站| 永久免费看mv网站入口亚洲| 亚洲老板91色精品久久| 国产极品精品在线观看| 久久精品2019中文字幕| 日韩精品在线观看网站| 色哟哟入口国产精品| 国产第一区电影| 97涩涩爰在线观看亚洲| 亚洲精品久久久一区二区三区| 欧美色欧美亚洲高清在线视频| 91亚洲精品一区| 亚洲精品中文字幕女同| 国产一区二区三区高清在线观看| 国产欧美日韩免费| 久久久久免费视频| 日日摸夜夜添一区| 亚洲日本欧美日韩高观看| 在线视频中文亚洲| 91麻豆国产语对白在线观看| 91av在线不卡| 中文字幕日韩精品有码视频| 亚洲国产精品久久久久秋霞蜜臀| 日韩av免费在线看| 久久久久中文字幕| 国内精品久久久久影院优| 欧美成人精品h版在线观看| 亚洲第一男人av| 九九久久久久久久久激情| 日韩福利视频在线观看| 91嫩草在线视频| 97视频免费在线观看| 成人欧美一区二区三区黑人孕妇| 66m—66摸成人免费视频| 欧美成人午夜激情视频| 国产精品影院在线观看| 欧美老少配视频| 欧美一区二区三区……| 国产97在线|日韩| 国产视频久久久久久久| 亚洲精品国产美女| 中文字幕v亚洲ⅴv天堂| 精品无码久久久久久国产| 欧美日韩亚洲国产一区| 国内精品久久久久| 欧美日韩中文字幕日韩欧美| 色无极亚洲影院| 日韩大片在线观看视频| 最近2019中文字幕第三页视频| 久久的精品视频| 26uuu另类亚洲欧美日本一| 国产日韩欧美电影在线观看| 成人免费福利视频| 欧美裸体男粗大视频在线观看| 欧美激情亚洲视频| 伊人久久精品视频| 国产福利精品av综合导导航| 亚洲天堂精品在线| 欧美日韩性视频在线| 美日韩精品免费视频| 日韩精品电影网| 欧美一级在线亚洲天堂| 91在线高清免费观看| 国产69久久精品成人| 日韩av免费在线播放| 色777狠狠综合秋免鲁丝| 最近2019中文字幕mv免费看| 九九热精品视频在线播放| 欧美一区二区大胆人体摄影专业网站| 亚洲第一免费网站| 国产精品久久久久久av福利| 精品中文字幕久久久久久| 欧美午夜影院在线视频| 国产精品网址在线| 亚洲免费视频在线观看| 91成人性视频| 91九色视频导航| 97在线免费观看| 国产精品亚洲视频在线观看| 黑人巨大精品欧美一区二区一视频| 97婷婷大伊香蕉精品视频| 美女精品视频一区| 久久久久久久久久久91| 国产精品久久国产精品99gif| 欧美一级淫片videoshd| 在线a欧美视频| 欧亚精品中文字幕| 51ⅴ精品国产91久久久久久| 热久久美女精品天天吊色| 日韩中文字幕视频在线| 国产欧美一区二区三区久久人妖| 国产成人涩涩涩视频在线观看| 亚洲丁香久久久| 欧美激情亚洲综合一区| 最好看的2019年中文视频| 中文字幕日韩精品在线观看| 国产精品日韩在线播放| 亚洲国产欧美一区二区丝袜黑人| 日韩电影中文字幕一区| 不卡在线观看电视剧完整版| 亚洲黄一区二区| 欧美性jizz18性欧美| 日韩有码在线播放| 亚洲福利影片在线| 日韩av电影中文字幕|