程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> WebSphere >> 通向架構師的道路 第十六天 IBM Websphere與IBM HttpServer的集成

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

編輯:WebSphere

一、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結束成功。

結束今天的教程!

查看全套教程:http://www.bianceng.cn/Programming/project/201302/35466.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved