大いにハマった・・・、環境はちゃんと調べてから!!

IT関連,雑談

Weblogic Server 12C(以下weblogic12cと略す)でハマりました。

2時間少々を無駄にしてしまった(涙)

っというか、Oracle HTTP Server(以下OHSと略す) にハマったと言った方が正しいのか。

ミドルウェアを専門に扱っていればどうということはない話ですが、構築したのが自分ではなかったので完全に忘れてました。

構築されてから数年経ってるし・・・。


構成は単純です。

エンドユーザー→OHS→weblogic12c
エンドユーザー→OHS→weblogic12c

という流れでOHS(Webサーバー)からweblogic12c(アプリケーションサーバー)にリクエストを転送しています。

ここで問題になったのが、アプリケーションサーバーであるweblogic12cに新規Webアプリ(warファイル)をデプロイしても当該URLにアクセスした結果が404エラーになってしまうということです。

ここまで書けば何を忘れているかもうおわかりですよね。

そうです・・・!!

OHSのリクエスト転送の構成に新しいWebアプリケーションの転送設定を追記していなかったんです(涙)

インストールするwarファイルも自分で作成したものではなかったので問題の切り分けに時間が掛かりました。

元々、各Webアプリケーションが個別で転送されるように設定されていたので、そのままスルーしてくれる設定は無かったんです。

これ、自分で構築していればすぐに気付いた内容です・・・。

他人様が構築した環境を触るときは当時の資料を確認するなり注意が必要ですね。

そんな訳で、同じようにハマってしまう人が出ないようにここに記録を残しておきます。


OHSの転送設定は、直接 mod_wl_ohs.confファイルを編集します。

ファイルの場所はインストール場所によって変わるかもしれませんが、そのままインストールをしていれば、次にディレクトリにファイルがあります。

ORACLE_INSTANCE/config/OHS/component_name

ファイルをテキストエディタで開き、<IfModule weblogic_module>要素を探します。

※今回の記述はweblogic12cが単一サーバーでクラスタ実行されていない場合の記述です。

<IfModule weblogic_module>要素に次のLocationディレクティブを追加します。

構文:

<IfModule weblogic_module>
<Location path>
SetHandler weblogic-handler
WebLogicHost host
WeblogicPort port
</Location>
</IfModule>

※Apache Configではないですが、シンタックスハイライターにconfが無かったので代用です

例:

/hogeAppへ転送したい場合には次のように記述します。

※weblogic12cはlocalhost:7001でリスニングしている前提です。

<IfModule weblogic_module>
<Location /hogeApp>
SetHandler weblogic-handler
WebLogicHost localhost
WeblogicPort 7001
</Location>
</IfModule>

今回はファイルを直接編集しましたがインストールされていればGUIでの設定も出来るようです。

GUIで設定してもどうせファイルに書かれるのでファイルを直接触った方が楽ですね。

後はOHSの再起動をすれば無事にWebアプリケーションへアクセスすることが出来ます。

再起動しないと設定が反映されないので気を付けましょう。


分かってしまえば簡単なことですが、ハマり込むと中々抜け出せなかった罠でした。

warファイルをとっかえひっかえしてみたり、weblogic12c側に原因があると思っていたので完全に時間を無駄にしましたね。

OHSの存在なんてすっかり忘れていたのが敗因です(涙)

まずはサーバー構成を確認しましょう!

という失敗談でした。

IT関連,雑談

Posted by oichan