通常來講IBM Http Server(簡稱IHS)與Websphere Application Server(簡稱WAS)是聯合使用的,即經過IHS的80端口間接訪問WAS的動態web(jsp,servlet,javabean)、EJB(Enterprise Javabean)。WAS默認使用的應用端口是9080,在實際項目中時常會遇到IHS的80不可用,必需要加9080才能使應用被正常訪問。有的朋友爲此熬夜奮戰險些抓狂,其實沒那麼可怕,通過我屢次與該問題較量,得出了一點點經驗,但願能給其餘剛剛接觸WAS、IHS的朋友一些借鑑。原理很少說了,看幾個問題。java
致使80端口不可用或IHS不能將請求傳遞給was的9080端口的緣由通常有如下幾種狀況:web
一、插件問題: sql
在你安裝完IHS後,必定要在WAS控制檯裏生成和傳播插件。若是沒有作此操做,則沒法正常使用IHS 80端口。 tomcat
由於沒有這一項,休想讓was和ihs結合起來,當你作完了這步操做,就會發如今IHS的httpd.conf文件的末尾會自動加上這兩句。服務器
LoadModule was_ap22_module /usr/IBM/HTTPServer/Plugins/bin/32bits/mod_was_ap22_http.soapp
WebSpherePluginConfig /usr/IBM/HTTPServer/Plugins/config/webserver1/plugin-cfg.xmljsp
固然有的時候,你點了生成和傳播插件,但httpd.conf裏沒這兩句話,請檢查httpd.conf的寫入權限或者手工添加這兩句。ide
二、httpd.conf不要輕易亂修改: 工具
在你不明白IHS的httpd.conf如何修改的狀況下千萬不要隨意修改。sqlserver
在安裝was後,再安裝ihs。啓動was管理控制檯,進入後將默認應用DefaultApplication 中止卸載,而後部署你的應用(好比用wsad或AAT打的WAR包),啓動後測試一下9080端口訪問是否正常,而後在管理控制檯下:環境---更新web服務器插件---肯定,從新啓動ihs,你天然在ihs的httpd.conf
文件最後看到這兩行(自動添加的,根本無須手動加入):
LoadModule was_ap22_module /usr/IBM/HTTPServer/Plugins/bin/32bits/mod_was_ap22_http.so
WebSpherePluginConfig /usr/IBM/HTTPServer/Plugins/config/webserver1/plugin-cfg.xml
沒有上面這兩行?那就想一想是否是版本的問題,否則稍有錯誤就很容易致使ihs啓動不起來或者啓動起來後也無80端口。
三、權限問題
須要特別注意mod_was_ap22_http.so和plugin-cfg.xml文件必須跟安裝時使用的用戶和組一致,另外就是這兩個文件須要有讀取和執行權限。
好比你有時會遇到IHS進程正常和端口正常,但訪問卻報404錯誤,提示「URL /microblog/mb/findMblogIdsOrderbyTime.action was not found on this server.」找不到的問題,當你把這兩個文件的屬主和權限調正確後,就不會報錯了。
四、打包的時候須要注意哪些問題?
IBM打包工具wsad和ATT都挺好用的,也沒有什麼特殊的設置,基本上在tomcat上能正常運行,在was上就沒什麼問題。另一定要設置好環境變量,進入was管理控制檯----資源----jdbc提供程序---我用的SQLServer,類路徑裏面填寫C:/j2sdk/lib/msbase.jar
C:/j2sdk/lib/mssqlserver.jar
C:/j2sdk/lib/msutil.jar
就完成了,若是你在此設置數據源和鏈接池使用起來更爲簡潔。打包時通常設置都很靈活,隨意就行,若是想打一個ear也行,打一個war也行。在was中部署的時候上下文根也很隨意,若是填入 / 表明直接指向你的應用文件夾(也許就是你的網站根目錄),固然也能夠指向你應用的名字。
五、IHS重裝
有的時候IHS不正常或啓動了無80端口,致使應用必須加9080才能訪問。這時你查IHS進程只有1-3個進程(正常狀況下通常有6個IHS進程),重啓IHS數遍也不行。一般你能夠選擇從新安裝IHS,但須要生成和傳播插件。
測試
http://serverIP:9080/applicationName/index.jsp能訪問動態頁面
http://serverIP/applicationName/HomePage.jsp也能訪問動態頁面(IHS和WAS結合)
http://serverIP/能夠訪問IHS管理控制檯
http://serverIP:9060/ibm/console 能夠訪問WAS管理控制檯