通向架構師的道路(第十六天)IBM Websphere與IBM HttpServer的集成

一、IBMWebsphere與IBMHttpServer

IBM WebSphere非常強大,幾乎可以和任何主流Web服務器集成。其原理和Weblogic與Apache以及tomcat與Apache的集成原理一致,也是以plug-in(插件)的方式來做應用的。

不過我們今天要介紹的是IBM自帶的HttpServer,又稱IHS。

IHS其實就是一個Apache,IBM拿了Apache過來進行了改造,使得它可以和它的WAS系列產品緊密結合並且可以通過WAS的Admin Console對它進行可視化管理。

在今後的教程中我們會涉及到IBM WebSphere的集羣及WebSphere Application Server Network Deployment也是使用這個IHS來做各個不同集羣節點間的HTTP請求派發的。

二、基本概念

IBM 的HttpServer其實就是一個Apache,除了插件生成這一塊不需要像Weblogic或Tomcat那樣需要去它們的官網下載相關的.so文件,其它設置都和Apache無疑,因此大家可以參考我的教程的“第一天之Apache整合Tomcat”與“第三天之apache性能調優”中的內容去調優和配置這個Apache。

IBM的HttpServer與WAS作集成時,只要你裝了IBMHttpServer那麼它的plug-in是可以通過WAS的Admin Console動態Generate出來的。我們下面就來介紹這兩者是如何集成的。

三、安裝IBM HttpServer

我們這邊用的是IBM HttpServer,它在官網上下載後的文件名爲” C87PNML.zip”,我們把它解壓到一個指定目錄中去。

找到launchpad.exe文件,運行它。

選擇”Launch the installationwizard for IBM HTTP Server”項。

[下一步]

指定相關的安裝目錄。

[下一步]

可以使用默認的端口,保持這個設置不動直接下一步

[下一步]

你可以把它作爲windows的“服務項”,也可以不作爲winodws的“服務項”,這個安裝和apache是一樣的。

[下一步]

我們這邊的用戶名和密碼保持和我們的WAS的控制檯一致即:

用戶名    admin

密  碼    password_1

[下一步]


[下一步]->[下一步]後開始安裝

安裝完後點擊[完成]按鈕

這是IBM HTTPServer安裝完後在系統中生成的相關的菜單項,我們可以直接點這個Start Http Server。

運行後在IE中輸入http://localhost或者是http://主機名 ,看到以下網頁即代表我們的HTTPServer安裝成功了。

四、使用WAS控制檯自動生成與IHS集成時的plugins

我們先把我們的WAS啓動起來。

通過http://localhost:9060/ibm/console登錄WAS的adminconsole,點左邊的服務器->服務器類型->Web服務器

我們點擊這個[新建]按鈕,這個新建按鈕將生成我們的plugins以及相關的集成配置文件。

在下面這個界面處填寫我們的web server的配置名與主機名,並且選擇我們的“插件類型”,因爲我們用的是IHS+WAS,因此我們使用類型:IBM HTTP Server

[下一步]

我們把即將要生成的IHS集成WAS的plugin及其配置文件生成到一個其它的目錄,我們這邊使用的是d:\deployment\HTTPServer目錄用於存放我們從WAS中生成的IHS的plugins文件,因此WAS會在此目錄下生成一個Plugins的目錄。

[下一步]

點擊[完成]按鈕,此時它會在我們的d:\deployment\HTTPServer輸出相關的IHS的plugin與相關文件了,此步驟有點慢,稍等一會後,當出現下面這樣的界面時

點擊“保存”完成配置。然後我們去d:\deployment\下查看我們生成了什麼東西。

我們可以看到在我們的d:\deployment\HTTPServer目錄下生成了一個Plugins目錄,其內容如下。

好了,現在我們開始要真正集成我們的IHS與WAS了。

五、集成IHS與WAS

5.1 配置httpd.conf

IBM HttpServer就是一個Apache,因此它的主配置文件也是httpd.conf文件。

我們先來到我們的httpserver的安裝位置,如:D:\IBM\HTTPServer

我們用純文本編輯工具打開“D:\IBM\HTTPServer\conf\httpd.conf”這個文件。我們來看最後一行:

LoadModule was_ap20_module "d:\IBM\HTTPServer\Plugins\bin\mod_was_ap20_http.dll"

WebSpherePluginConfig "d:\IBM\HTTPServer\Plugins\config\demoweb\plugin-cfg.xml"

如果你仔細研讀過之前的Tomcat與Apache的整合或者是Weblogic與Apache的整合,這兩句你一看就懂了。

我們在這兩行下增加一個Virtual Host:

<VirtualHost *:80>

ServerName shnlap93

ServerAlias shnlap93

ServerAdmin admin@shnlap93

DocumentRoot d:/www

DirectoryIndex index.htm index.html index.jsp

<Directory "D:/www/cbbs">

    Options None

    AllowOverride None

    Order allow,deny

          Allow from all

</Directory>

</VirtualHost>

我們設置了一個virtual host,並使得這個host不具有目錄瀏覽只能夠解析靜態html文件內容。

但好像我們發覺總覺得還是缺了點什麼內容?還記得我們在做tomcat與apache結合時用的:

JKMount*.jsp

或者是

Weblogic與Apache結合時用的:

MatchExpression/cbbs/WEB-INF

這樣的東西嗎?

別急,下面來了。

5.2 開始整合

把我們在第四小節中生成的plugins的內容,即D:\deployment\HTTPServer\Plugins\config目錄下的內容:


就是這個demoweb目錄拷貝到我們的IBMHTTPServer的安裝目錄下去,如果有提示覆蓋請選擇“是,全部”。

如:

我們的HTTPServer是裝在D:\IBM\HTTPServer\

那麼我們就把:

D:\deployment\HTTPServer\Plugins\config\下的內容全部覆蓋式拷貝到

D:\IBM\HTTPServer\Plugins\config目錄內。

然後我們用純文本編輯器打開D:\IBM\HTTPServer\Plugins\config\demoweb\plugin-cfg.xml文件。

第一步:

把所有的d:\deployment\HTTPServer的字樣換成我們的真實的HTTPServer安裝的目錄,因爲我們的HTTPServer可能與我們的WAS是安裝在兩臺不同的機器上的。

如果你在生成plugins時使用的IHS的路徑和我們的HTTPServer所在的路徑是一致的,那麼你大可跳過這一步

如我們這邊就需要:

把所有的d:\ deployment\HTTPServe替換成D:\IBM\HTTPServer

第二步:

在D:\IBM\HTTPServer\Plugins\config\demoweb\plugin-cfg.xml文件內找到下面這一行:

<UriGroup Name="default_host_myserver1_shnlap93Node01_Cluster_URIs">

往下看,我們可以看到如下這些行:

<UriGroup Name="default_host_myserver1_shnlap93Node01_Cluster_URIs">

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ivt/*"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsv"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsw"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/j_security_check"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm_security_logout"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*"/>

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/*"/>

   </UriGroup>

這些語句就相當於我們的:

JKMount*.jsp

或者是:

MatchExpression/cbbs/WEB-INF

我們把先把下面這段註釋掉,因爲我們想讓所有的/cbbs下動態的內容給我們的WebSphere去解釋,所有的靜態html內容給我們的IHS解析,而不是像它默認這樣,所有的動態靜態全交給了WebSphere去解析,這不是我們想要的。因此我們把這一行註釋掉。

<!--

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/*"/>

-->

然後我們在這一行下再增加如下幾行:

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/WEB-INF/*"/>

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/*.action"/>

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/servlet/*"/>

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/*.jsp"/>

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/*fckeditor/editor/filemanager/connectors/*.*"/>

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/cbbs/fckeditor/editor/filemanager/connectors/*"/>

第三步:

保存我們修改的httpd.conf文件,保存我們修改的plugins文件,重啓我們的IBM HTTPServer。

如果一切無誤,那麼我們先來書寫一個index.htm文件,並把它放在我們的d:\www\cbbs目錄下,其內容如下:

<html>

<head>

<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://shnlap93/cbbs/index.jsp">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>loading</title>

<body>

Loading…

</body>

</html>

然後我們打開一個IE,輸入: http://localhost/cbbs/,得到我們的應用的登錄界面,輸入相關的用戶名與密碼登錄後,進行一些操作:

一切無誤後,IBM HTTPServer與我們的IBM WebSphere結束成功。

結束今天的教程!


發佈了41 篇原創文章 · 獲贊 3 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章