サーバメンテナンス時に、保守時間帯の告知を事前に行うが、
サーバを停止時に、リンク切れにするのではなく、
サーバがメンテナンス中であるページを出力することを考える。
サイト検索で、いくつかありました。
[1]
保守サーバ(PC)に切り替える。
:これは単なるWWWサーバのみ。簡易的です。
[2]
ロードバランスで、保守サーバに切り替える。
:これは、ちょっと大げさ?
[3]
WWWサーバ(apache)とは別にtomcat,jbossがいて、
tomcat等を切り離した際、apacheからリンク切れ(httpエラー)のページを別なものに入替える。
~~~~~~~~~~~~~~~~~~~~~~~~~~
というわけで?今回:apache+jbossの連携手順を確認します。
:この手の情報は、サイトに満載しています。いいとこどりと動作確認を兼ねて情報整理。
~~~~~~~~~~~~~~~~~~~~~~~~~~
環境)
今回は以下のような構成とします。

jbossをapacheとは別サーバで実行する。
:apacheをロードバランスとして使用する場合、必然的にJBOSSとはPCを分けることになる。
:今回はロードバランスまでは言及しません。
インストは、基本的にdefaultです。
[apache]
apache_2.2.3-win32-x86-no_ssl.msi
C:\Program Files\Apache Software Foundation\Apache2.2
http://localhost/
[jboss]
jboss-4.2.2.GA.zip
Server1:C:\Biz2\jboss-4.2.2.GA
Server2:C:\Biz\jboss-4.2.2.GA
http://localhost:8080/
http://localhost:8080/jmx-console/
http://localhost:8080/web-console/
[java]
微妙に違っていましたが、一応記録。
Server1:java version "1.5.0_07"
Server2:java version "1.5.0_16"
~~~~~~~~~~~~~~~~~~~~~~~~~~
Server1の設定
~~~
[1]
C:\Program Files\Apache Software Foundation\Apache2.2\conf
httpd.conf を編集。
・以下を有効。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
・以下を追加。
Include conf/extra/httpd-proxy.conf
~~~
[2]
C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra
httpd-proxy.conf を作成。
@@@
参考)
http://www.failuresoft.com/report/jboss/jboss40_apache22.html
@@@
:jbossをapacheと同一PCにインストする場合は以下。
> type httpd-proxy.conf
<Location />
ProxyPass ajp://localhost:8009/
</Location>
>
:今回は、別PC:192.168.0.213 なので、
<Location />
ProxyPass ajp://192.168.0.213:8009/
</Location>
~~~
[2-1]更に、jbossの各種コンソールを無制限に開けないように指定する。
:apacheの動作しているPC(localhost,192.168.0.122)でのみ許可する。
:ここでは、コンソールでないと、許可しないという意味になるが、状況にあわせてIPを指定する。
ちなみに、予想される動きであるが、マスク内のPC群(LAN内の全てのPC)にアクセス許可を与える。
Allow from 192.168.0.0/255.255.255.0
最終的に、httpd-proxy.conf は以下のようになる。
> type httpd-proxy.conf
<Location />
ProxyPass ajp://192.168.0.213:8009/
</Location>
<Location /web-console/*>
Order deny,allow
Deny from all
Allow from localhost
Allow from 192.168.0.122/255.255.255.255
</Location>
<Location /jmx-console/*>
Order deny,allow
Deny from all
Allow from localhost
Allow from 192.168.0.122/255.255.255.255
</Location>
>
@@@
番外)
jbossを別PCにする前に、Server1:apache+jbossでも動きを確かめた。
@@@
~~~
[2-2]動作確認1
apacheのみ起動。jbossは起動しない。
http://localhost/
:apacheのページ出力。
http://localhost/jmx-console/
:NG
@@@
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
@@@
:今回、メンテナンス時には、上記のページが出力される。
~~~
[2-3]動作確認2
Server2で、jbossを以下のように起動。
C:\Biz\jboss-4.2.2.GA\bin
run.bat -b 0.0.0.0
http://localhost/jmx-console/
http://localhost/web-console/
http://192.168.0.122/jmx-console/
http://192.168.0.122/web-console/
:いずれも、OK
Client(192.168.0.210)では、
http://192.168.0.122/
:OK
http://192.168.0.122/index.html
:OK
http://192.168.0.122/jmx-console/
:許可していないので、403 アクセス不可となる。想定内です。
http://192.168.0.122/web-console/
:許可していないので、403 アクセス不可となる。想定内です。
~~~
但し、
jbossを
run.bat -b 0.0.0.0
で動かしているので、
Server2に直にアクセスできてしまう。意味がない!
http://192.168.0.213:8080/
http://192.168.0.213:8080/index.html
http://192.168.0.213:8080/jmx-console/
http://192.168.0.213:8080/web-console/
その対策を以下で行う。
~~~
[3]Server2でファイル編集。
@@@
参考)
http://www.flexive.org/docs/3.0/website/jboss_installation.html
http://bellks-tec.cocolog-nifty.com/blog/2007/06/jboss_42_22c0.html
@@@
~~~
[3-1]
C:\Biz\jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer
server.xml
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
をコメント。
:8080でアクセスできなくする。
~~~
[3-2]
jbossを以下で実行する。
-bで指定するIPは、Server2 のもの。
run.bat -b 192.168.0.213
or
run.bat -b 0.0.0.0
@@@:2008/09/17:add
1台のPCにおいて複数のIPでjbossを動かすのでなければ、-b 0.0.0.0 でOK。
@@@
~~~
[3-3]動作確認1
[at Server1]
http://192.168.0.213:8080/
:NG:想定内。
http://localhost/
:OK
http://localhost/index.html
:OK
http://localhost/jmx-console/
:OK
http://localhost/web-console/
:OK
[at Client]
http://192.168.0.213:8080/
:NG:想定内。
http://192.168.0.122/
:OK
http://192.168.0.122/index.html
:OK
http://192.168.0.122/jmx-console/
:許可していないので、403 アクセス不可となる。想定内です。
http://192.168.0.122/web-console/
:許可していないので、403 アクセス不可となる。想定内です。
~~~
[3-4]動作確認2
二次元バーコードのテストで使用した
http://humanbeing-etcman.blogspot.com/search/label/QR%20code
の
qrcode.war をServer2にdeploy。
@@@
番外)
お試しサイトは既になくなっていました、、、?
@@@
http://192.168.0.122/qrcode/test/index.jsp
:出ました:OK
~~~
補足):老婆心ながら、
Server1,Server2は、基本的に
firewall等で、許可ポートを制限必要があります。
~~~
end
0 件のコメント:
コメントを投稿