天天看點

通過IHS(IBM HTTP SERVER)轉發WAS(WEBSPHERE)應用的小問題

通過IHS(IBM HTTP SERVER)轉發WAS(WEBSPHERE)應用的小問題

通過IHS轉發應用本來不是什麼大問題,可最近就是一小問題讓我百思不得其解,直至将請求完全截下來才明白其中的問題所在。

大概的需求是這樣的:

WAS(IP假如為1.1.1.1)有三個虛拟主機:admin_host,default_host,my_host

admin_host主機名稱:

  *  9060   

  *  9043   

default_host主機名稱:

  *  9080   

  *  80   

  *  9443   

my_host主機名稱:

  *  9082      

  *  9445

現要将default_host,my_host的應用映射到IHS,通過IHS(IP假如為:2.2.2.2)通路,比如:

原有應用:http://1.1.1.1:9080/abc/--------------->http://2.2.2.2/abc/

原有應用:http://1.1.1.1:9082/app/--------------->http://2.2.2.2/app/

按正常方法,映射很快就建立起來了,但default_host中的應用沒有問題,都可以按映射後的方式通路

但my_host的應用隻能按原有方式通路,無法通過IHS通路,錯誤是:無法找到頁面。

看plugin-cfg.xml,沒有看出任何問題,虛拟主機映射也好象沒有看出問題。

由于http://1.1.1.1:9082/app/可以通路,是以也沒有懷疑WAS中有什麼配置問題,

經過數次嘗試後,隻好用工具将IHS轉發的請求截下來看看,并同直接通路所産生的HTTP請求資料比較,

終于發現了問題所在:

在所有HTTP請求中,有一個HTTP頭,叫HOST,

利用直接通路,HOST頭的内容:

 HOST:1.1.1.1:9082

而利用IHS所産要的請求,HOST頭為:

 HOST:2.2.2.2

而WAS在比對虛拟主機用的就是這個字段,是以,最終的解決方案就簡單了:

隻要在my_host中,主機名稱加上:

 * 80

即可。

由此可以看出,虛拟主機,無論是IHS層面或是WAS層面,都是以最終使用者請求的方式為比對準則。

繼續閱讀