IBM httpserver + websphere的问题?

时间:2022-11-05 17:35:50
为什么在websphere中的静态页面不能访问,
而在httpserver中的页面则可以访问?
请问要如何设置就能访问websphere中的静态页面。

9 个解决方案

#1


关键你要用组装打包工具AAT在打myweb.war包的时候,
选择IBM扩展中的启用文件服务,然后重新发布。
启动文件服务的意思是对于该应用,所有的访问都由
WAS处理,而不通过IHS。

如何启动AAT和文件服务:
在WebSphere/AppServer/bin目录下执行assembly.bat(for Windows2000)
assembly.sh(for AIX),启动后打开你的应用,点击左边的Web模块,在右边
会有“IBM 扩展”选项卡,在里面选用“启用文件服务”。

在一般情况下当IHS接收到动态元素的请求会直接检查WAS
的插件文件,将相应的请求发往WAS。如果IHS接收到静态元素的请求,IHS不会
把请求发往WAS,而是在自己的文档根中检索。但是,如果一个应用启动了文件服
务那么所有发往该上下文根的请求就会都被发往WAS,而不会交给IHS处理。

#2


请问有没有办法直接更改配置文件(如.xml)实现这种功能。
多谢!
我先试一下,有问题再请教iceleighton.

#3


可以,不过我不记得怎么改了,另外记住更新服务器插件和重起HTTP Server

#4


我试过了
更新了服务器插件,并重起了http server
但是用httpserver访问不了websphere下的静态页面
直接访问websphere则可以

#5


你确认你的应用启动了文件服务了吗?
绝对不可能,我早上刚做了试验!

#6


是不是所有的应用都要启动文件服务?
http server是否要有相应的设置。

#7


所有要访问静态页面的应用,
要么在Http Server端建立虚拟主机和文档根把静态文件放在Http Server端。
要么就要启动WAS的文件服务,接管所有的静态访问。

关于在Http Server端建立虚拟主机和文档根的方法如下:
该机有一个IP地址(11.22.33.44-server.domain.com),对这个IP要配置两个别名"www.domain.com"和"www.sub.domain.com",使用"apachectl stop"将ibm http server停止后,在<HTTPHOME>/conf/httpd.conf中加入下列行:
    ...
    Port 80
    ServerName server.domain.com

    NameVirtualHost 11.22.33.44 

    <VirtualHost 11.22.33.44>
    DocumentRoot /www/domain
    ServerName www.domain.com
    ...
    </VirtualHost>
    
    <VirtualHost 11.22.33.44>
    DocumentRoot /www/subdomain
    ServerName www.sub.domain.com
    ...
    </VirtualHost> 
    再使用"apachectl start"将ibm http server启动后,在浏览器中浏览"http://www.domain.com"和"http://www.sub.domain.com"即可。
    注意:如果"www.domain.com"和"www.sub.domain.com"没有在DNS中给出的话,测试时就要在ibm http server端和客户端的hosts文件中给出。
    不好意思,上面的文档根的写法是Unix平台的,自己注意以下。
DocumentRoot后面换成Windows的写法。


#8


如果要启动WAS的文件服务,接管所有的静态访问
http server是否也要进行上述设置?

#9


多谢iceleighton(冰雪)的帮助,小弟收益匪浅。

#1


关键你要用组装打包工具AAT在打myweb.war包的时候,
选择IBM扩展中的启用文件服务,然后重新发布。
启动文件服务的意思是对于该应用,所有的访问都由
WAS处理,而不通过IHS。

如何启动AAT和文件服务:
在WebSphere/AppServer/bin目录下执行assembly.bat(for Windows2000)
assembly.sh(for AIX),启动后打开你的应用,点击左边的Web模块,在右边
会有“IBM 扩展”选项卡,在里面选用“启用文件服务”。

在一般情况下当IHS接收到动态元素的请求会直接检查WAS
的插件文件,将相应的请求发往WAS。如果IHS接收到静态元素的请求,IHS不会
把请求发往WAS,而是在自己的文档根中检索。但是,如果一个应用启动了文件服
务那么所有发往该上下文根的请求就会都被发往WAS,而不会交给IHS处理。

#2


请问有没有办法直接更改配置文件(如.xml)实现这种功能。
多谢!
我先试一下,有问题再请教iceleighton.

#3


可以,不过我不记得怎么改了,另外记住更新服务器插件和重起HTTP Server

#4


我试过了
更新了服务器插件,并重起了http server
但是用httpserver访问不了websphere下的静态页面
直接访问websphere则可以

#5


你确认你的应用启动了文件服务了吗?
绝对不可能,我早上刚做了试验!

#6


是不是所有的应用都要启动文件服务?
http server是否要有相应的设置。

#7


所有要访问静态页面的应用,
要么在Http Server端建立虚拟主机和文档根把静态文件放在Http Server端。
要么就要启动WAS的文件服务,接管所有的静态访问。

关于在Http Server端建立虚拟主机和文档根的方法如下:
该机有一个IP地址(11.22.33.44-server.domain.com),对这个IP要配置两个别名"www.domain.com"和"www.sub.domain.com",使用"apachectl stop"将ibm http server停止后,在<HTTPHOME>/conf/httpd.conf中加入下列行:
    ...
    Port 80
    ServerName server.domain.com

    NameVirtualHost 11.22.33.44 

    <VirtualHost 11.22.33.44>
    DocumentRoot /www/domain
    ServerName www.domain.com
    ...
    </VirtualHost>
    
    <VirtualHost 11.22.33.44>
    DocumentRoot /www/subdomain
    ServerName www.sub.domain.com
    ...
    </VirtualHost> 
    再使用"apachectl start"将ibm http server启动后,在浏览器中浏览"http://www.domain.com"和"http://www.sub.domain.com"即可。
    注意:如果"www.domain.com"和"www.sub.domain.com"没有在DNS中给出的话,测试时就要在ibm http server端和客户端的hosts文件中给出。
    不好意思,上面的文档根的写法是Unix平台的,自己注意以下。
DocumentRoot后面换成Windows的写法。


#8


如果要启动WAS的文件服务,接管所有的静态访问
http server是否也要进行上述设置?

#9


多谢iceleighton(冰雪)的帮助,小弟收益匪浅。