LVS中採用Jboss作為RealServer的配置要點
部落格建站已過 2 個月了,大部分文章總是在記錄部落格的折騰史,估計大部分喜歡折騰的博主都有這樣的時期吧!現在部落格基本算是定型穩定,是時候寫點與主題相關的博文了,否則,不知道的還以為我這是 WP 折騰部落格呢!
這幾天,老大發新年任務了,把新技術的研究就交給了我,其中又一項就是 Jboss 的叢集。說實話,對於 Jboss,我真的談不上熟練,因為長期都在管理 Tomcat 平臺。攬到這個任務,我倒也非常高興,終於可以弄點新東西了!
LVS+keepalived 負載均衡架構我是比較熟悉的,一直用的 Tomcat 作為 Webserver,想著換成 Jboss 應該也是手到擒來吧?沒花多久時間,相關軟體的安裝和配置都已被我搞定,於是開始測試訪問分發是否成功,結果發現採用 jboss 作為後端真實 WEB 主機,居然無法訪問?ipvsadm 狀態中全是 InActConn 資料!而 Kill 掉它,啟動同一臺主機上的 Tomcat 則可以完美輪詢,匪夷所思~~
於是,各種搜各種測,終於找到了大概原因和方法:
原來,jboss 作為 RealServer 時是需要調整監聽 IP 的,否則就收不到正確的訪問請求,如同敲錯了門,自然無法開啟 jboss 網頁了!
幾乎搜遍了,只找到了高版本 Jboss 的相關解決辦法,就先貼上來分享一下:
這裡只說一下 standalone 模式下的修改方法:
①. 使用 vim 編輯 jboss 的配置檔案 standalone.xml:
Shell1 | vim/www/jboss7/standalone/configuration/standalone.xml |
②. 在 vim 中按下/或?,輸入/interface>查詢並定位到最後一個</interface>:
Shell1 | ?/interface> |
③. 在最後一個</interface>前面加上如下程式碼:
123 | <interfacename="any"><any-address/></interface> |
④. 然後將</interface>下一句中的 public 改成 any,如下所示:
Shell1 | <socket-binding-group name="standard-sockets"default-interface="any"port-offset="${jboss.socket.binding.port-offset:0}"> |
⑤. 最後使用 :wq 儲存退出即可解決這個問題。
而我們苦逼公司用的是 Jboss4 的版本,根本不存在 standalone 模式,自然也就不存在相關 xml 配置檔案了,而暫時又搜不到 Jboss4 的解決方法,只好自己埋頭研究解決了!等出結果了再來記錄下。。。