一般来说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的朋友一些借鉴。原理不多说了,看几个问题。
导致80端口不可用或IHS不能将请求传递给was的9080端口的原因一般有以下几种情况:
1、插件问题:
在你安装完IHS后,一定要在WAS控制台里生成和传播插件。如果没有做此操作,则无法正常使用IHS 80端口。
因为没有这一项,休想让was和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
当然有的时候,你点了生成和传播插件,但httpd.conf里没这两句话,请检查httpd.conf的写入权限或者手工添加这两句。
2、httpd.conf不要轻易乱修改:
在你不明白IHS的httpd.conf如何修改的情况下千万不要随意修改。
在安装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端口。
3、权限问题
需要特别注意mod_was_ap22_http.so和plugin-cfg.xml文件必须跟安装时使用的用户和组一致,另外就是这两个文件需要有读取和执行权限。
比如你有时会遇到IHS进程正常和端口正常,但访问却报404错误,提示“URL /microblog/mb/findMblogIdsOrderbyTime.action was not found on this server.”找不到的问题,当你把这两个文件的属主和权限调正确后,就不会报错了。
4、打包的时候需要注意哪些问题?
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中部署的时候上下文根也很随意,如果填入 / 代表直接指向你的应用文件夹(也许就是你的网站根目录),当然也可以指向你应用的名字。
5、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管理控制台
原始出处:http://xjsunjie.blog.51cto.com/999372/1395477