在本文中,你可以學(xué)習到:
? 使用 IBM HTTP Server 的好處有哪些
? 如何配置 IBM HTTP Server和IBM WebSphere Application Server連接
? 如何發(fā)布 ear包使之能優(yōu)化IBM WebSphere Application Server性能
? 一個(gè)示例
大家都知道, IBM 的 WebSphereApplicationServer( 簡(jiǎn)稱(chēng) WAS) 是一個(gè)企業(yè)的級 EJB 容器,它本身具有容納 EJB , Servlets , JSP , HTML 等功能,也就是說(shuō), WAS 它本身同時(shí)具備 EJB 容器和 WebServer 的功能。
我們單純的 WebServer 如 IIS,Apache,IBM HTTP Server( 簡(jiǎn)稱(chēng) IHS) ,它們只具有處理靜態(tài) HTML 頁(yè)面的功能,不具有 EJB 容器的功能。
我們通常在安裝 IBM WebSphere 包時(shí),可以選擇安裝 WAS 和 IHS 兩個(gè)部分。它們可以安裝在同一個(gè)物理主機上,也可以分開(kāi)安裝在不同的主機上。
WAS 在處理靜態(tài)的 HTML 頁(yè)面及一些圖片文件時(shí),它是通過(guò) Java 輸入和輸出流來(lái)進(jìn)行和客戶(hù)端通信的。而 IHS 是在 Apache 的基礎上修改而來(lái)的,它是用 C 語(yǔ)言來(lái)處理用戶(hù)的對靜態(tài)文件的請求。相比之下, IHS 處理靜態(tài)文件的速度要快一些。同時(shí),如果我們能夠讓二則連接起來(lái)成為一個(gè)整體,對客戶(hù)端用戶(hù)來(lái)說(shuō)是透明的,讓 WAS 做 EJB 容器處理動(dòng)態(tài)請求,讓 IHS 處理靜態(tài)文件,有以下好處:
? IHS 能夠以更快的速度處理靜態(tài)請求,在許多商務(wù)應用中,對于 html 頁(yè)面的請求和對于 JSP/Server 的請求及對于后臺 EJB 的請求數量是遞減的。在這種情況下,可以讓 IHS 分擔 WAS 的負擔。
? 可以把 IHS 和 WAS 分別裝在不同的物理主機上,這樣可以讓 IHS 處于 DMZ 區域,而讓 WAS 處于受保護區域,提高安全性。具體這一部分,可以參考其它網(wǎng)絡(luò )拓樸資料。
? 當企業(yè)應用增大時(shí),我們需要利用集群技術(shù)來(lái)達到負載均衡,這時(shí)候,可能需要多個(gè) WAS 節點(diǎn)并通過(guò) ND ( NetworkDeploymentManager )來(lái)管理它們。這時(shí)必須要有一個(gè) IHS 在前面提供這種分發(fā)功能。也就是說(shuō),利用 IHS 可以為以后擴展做更好的準備。
具體來(lái)說(shuō), IHS 和 WAS 的連接是通過(guò)一個(gè)叫 WebServerPlug-in 的來(lái)連接它們的。它們的拓樸結構圖可以如下所示:

上圖的清晰足以不再說(shuō)明。
要想讓 IHS 和 WAS 連接起來(lái),我們必須在安裝 WEBSphere 包時(shí),選擇自定義安裝,并選中“ Plug-in For IBM HTTP Server ”。同時(shí),我們需要安裝 IHS 和 WAS 。在本文中,我們以 IHS 和 WAS 裝在同一臺主機上為例說(shuō)明。
設: WAS 安裝在 D:\WebSphere511\WebSphere\AppServer 下面。
IHS 安裝在 D:\WebSphere511\IBMHttpServer 下面。
其次,我們需一個(gè)還沒(méi)有打包的 WSAD 工作區,我們在最后打包時(shí),要進(jìn)行一些設置以滿(mǎn)足要求。注意,這個(gè)工作區必須是最后馬上要打包發(fā)布的工作區。
在開(kāi)始之前,我們先啟動(dòng) IHS 和 WAS ,在 IE 中輸入:
http://localhost:9080/snoop/看是否正確安裝
好了,一切好了,我們來(lái)看如何配置。
用 WSAD5 啟動(dòng)最后需打包的工作區,進(jìn)入開(kāi)發(fā)環(huán)境的 J2EE 視圖,雙擊打開(kāi) ”WEB Content” 目錄下的“ WEB-INF ”目錄下的 web.xml 文件,進(jìn)入 XML 編輯器,選中擴展頁(yè)面,如下圖所示:

在上圖中,將“啟用了文件服務(wù)”前的 √ 去掉。保存。

2 、打包工作區,將系統輸出為 ear 包或輸出為 jar 包和 war 包兩部分均可以。
3 、進(jìn)入 WAS 管理工作臺,配置 J2C 認證和 JDBC 數據源,成功發(fā)布剛才導出的 ear 包。
4 、選擇 WAS 管理工作臺左邊的“環(huán)境” -> “ 更新 Web 服務(wù)器插件 ”,并在右邊選擇“確定”。
5 、然后退出 WAS 管理工作臺,進(jìn)入 WAS 安裝目錄:
D:\WebSphere511\WebSphere\AppServer\config\cells ,確認目錄下的 plugin-cfg.xml 是新生成的。
6 、進(jìn)入 IHS 安裝目錄: D:\WebSphere511\IBMHttpServer\conf ,并用文本編輯器打開(kāi)其下的
httpd.conf 文件,將光標移動(dòng)到最后一行,確認最后兩行為:
LoadModule ibm_app_server_http_module “D:\WebSphere511\WebSphere\AppServer/bin/mod_ibm_app_server_http.dll"
WebSpherePluginConfig "D:\WebSphere511\WebSphere\AppServer/config/cells/plugin-cfg.xml"
即需確認這兩個(gè)文件指向正確的位置且, plugin-cfg.xml 指向的是剛剛生成的。
同時(shí)找到類(lèi)似下面的兩行:
# TIHS should be changed to whatever you set DocumentRoot to.
<Directory "D:\WebSphere511\IBMHttpServer/htdocs/Zh_CN">
可以看出,這一行是設置 IHS 的根目錄所在的位置。你可以修改它也可以不修改。比如我們這里把它修改為:
<Directory “D:\WebSphere511\IBMHttpServer/htdocs/MyProject”>
注意上面的路徑分隔符的寫(xiě)法,同時(shí),請在 D:\WebSphere511\IBMHttpServer\htdocs\ 下建一個(gè)目錄 MyProject 。
同時(shí)找到 DocumentRoot 這一行,把它修改為:
DocumentRoot d:/websphere511/ibmhttpserver/htdocs/MyProject
這樣使得 IHS 的根目錄指向這個(gè)目錄。
7 、生新啟動(dòng) IHS 和 WAS 。
8 、進(jìn)入 WAS 安裝目錄下的:
D:\WebSphere511\WebSphere\AppServer\installedApps\abnerchai 目錄,其中 abnerchai 是以你的主機的名字命名的目錄,找到該目錄下剛才發(fā)布的那個(gè) ear 包目錄,并進(jìn)入該目錄下的 x.war 的這個(gè)目錄中,在這個(gè)目錄是存放的是你的所有有 HTML 文件和 JSP 及其它的 IMG 文件等,這個(gè)目錄也是根目錄,把這個(gè)目錄下的所有的靜態(tài)文件如 images 目錄等拷貝一份到剛才 IHS 的根目錄下。
9 、重啟 IHS 服務(wù)器即可以 :
http://xxx.xxx.xxx/yourApplicationname/來(lái)訪(fǎng)問(wèn)你的系統了。
附錄:舉例:
現在 WSAD 中 WEB Content 目錄下有一個(gè) JSP 文件如下所示:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< HTML >
< HEAD >
<%@ page language = "java" contentType = "text/html; charset=GBK" pageEncoding = "GBK" %>
< META http-equiv = "Content-Type" content = "text/html; charset=GBK" >
< META name = "GENERATOR" content = "IBM WebSphere Studio" >
< TITLE > index.jsp </ TITLE >
</ HEAD >
< BODY >
< p >< img src = "images/cz.jpg" ></ img >
< p >< a href = "in.html" > 靜態(tài) HTML </ a >
<%
out.println( "<p>這是動(dòng)態(tài)輸出!</p>" );
%>
</ BODY >
</ HTML >
同時(shí),在 WEB Content 目錄下有一個(gè) in.html 文件和一個(gè) images 目錄,其下有一個(gè) cz.jpg 文件。
同時(shí)在工作區中還有一些 JavaBean 和 EJB ,用上述方式發(fā)布 EAR 包后,名字為:
HelloWorldEARProject.ear
在 WAS 中發(fā)布并更新插件后,重啟 IHS 和 WAS 。在:
D:\WebSphere511\WebSphere\AppServer\installedApps\abnerchai\HelloWorldEARProject.ear
目錄下,有一個(gè) HelloWorldWebProject.war 目錄,其下含有 images 目錄和 in.html 文件,我們可以通過(guò) http://localhost/HelloWorldWebProject/index.jsp訪(fǎng)問(wèn)它 ( 這時(shí)看不到圖片和靜態(tài)連接不正確,因為 WAS 己設置成不處理這些靜態(tài)文件 ) 。
這時(shí)我們可以這么做,在:
D:\WebSphere511\IBMHttpServer\htdocs\MyProject 目錄下新建一個(gè) HelloWorldWebProject 目錄,把 images 目錄和 in.html 拷貝到該目錄下即可。
最后,它們的目錄結構如下所示:

這是 IBM HTTP Server 的目錄

這是 IBM Websphere Application Server 的目錄 ( 發(fā)布后 )
聯(lián)系客服