Powered By Blogger
ラベル Tomcat の投稿を表示しています。 すべての投稿を表示
ラベル Tomcat の投稿を表示しています。 すべての投稿を表示

2013年6月3日月曜日

Apache、Tomcatによるロードバランシング

以下の前提条件で記述します。
  1. Apacheがインストール済みである
  2. Tomcatがインストール済みである
  3. Apacheはproxy-ajpやproxy-proxy-balancerを有効にしてインストールしてある
冗長構成の内容はApacheは一台でバックエンドの2台のTomcatに対してバランシングを行います。

Apacheの設定

バランシングの設定値は以下です。

キー説明
stickysession/home/hoge/apache同一情報に継続的に接続する為のセッション値を指定します。Tomcatの場合はstickysession=JSESSIONIDを指定します。注意点として大文字小文字が区別される。
nofailoveroffアプリケーションがフェールオーバーに対応していればoffを、対応してない場合はonを指定する。
timeout1ワーカーを取得するまでの最大待機時間。デフォルトでは待機しないのでエラーを返してしまう場合があるので1秒を指定。
loadfactor10ロードバランスする割合を指定する。
routeAP1には「sv1」、AP2には「sv2」どのサーバに割り振るか動作している指定する。TomcatのJvmRoute値と合わせる必要がある。
retry5ApacheとTomcatとの再接続思考の間隔。デフォルトは60秒なので短くしておく。
ttl20非活動状態のコネクションと、関連するコネクションプール内のエントリの 生存時間を秒で指定します。


Balancerの設定

${APACHE_HOME}/conf/extra/httpd-proxy.confに以下の設定を記述します。
<location hoge="">
    ProxyPass balancer://hoge/ stickysession=JSESSIONID|jsessionid nofailover=Off ttl=20
</Location>

<Proxy balancer://hoge/>
    BalancerMember ajp://xxx.xxx.xxx.xxx:8009/ec loadfactor=10 route=sv1 retry=5
    BalancerMember ajp://yyy.yyy.yyy.yyy:8009/ec loadfactor=10 route=sv2 retry=5
</Proxy>


Tomcatの設定

${TOMCAT_HOME}/conf/server.xmlのEngine要素に対してjvmRouteを設定します。
AP1の場合
<Engine name="Catalina" defaultHost="localhost" jvmRoute="sv1">

AP2の場合
<Engine name="Catalina" defaultHost="localhost" jvmRoute="sv2">
Tomcat、Apacheを再起動すれば設定は完了です。

2013年5月10日金曜日

TomcatのみでSSL設定

■検証環境
・Eclipse3.6
・Java1.6.0_21
・Tomcat6.0.19


■キーストアの生成
・javaホームディレクトリ下のbinディレクトリに移動
 例)c:\java\J2SE\1.6.0_21\bin

 - 「keytool -genkey -alias tomcat -keyalg RSA」と入力
 - パスワードを聞かれるので、任意の値を指定ここでは「changeit」とします。
 - 再度パスワードを聞かれるので先ほどと同じパスワードを指定します。
 - 姓名を聞かれるので、入力する場合は入力してください。ここでは指定ないこととします。
 - 組織単位名を聞かれるので、入力する場合は入力してください。ここでは「SOL」とします。
 - 組織名を聞かれるので、入力する場合は入力してください。ここでは「Commerce21」とします。
 - 都市名または地域名を聞かれるので、入力する場合は入力してください。ここでは「Tokyo」とします。
 - 州名または地方名を聞かれるので、入力する場合は入力してください。ここでは「Minato」とします。
 - この単位に該当する 2 文字の国番号を入力してください。と聞かれるので、JPと入力します。
 - 確認メッセージが表示されるので、問題なければ「yes」と入力します。

・C:\Documents and Settings\ユーザ名\配下に
 「.keystore」が作成されていれば完了です。

■Tomcatの設定ファイルの修正
・パッケージエクスプローラ - Serversの下にあるサーバのserver.xmlを修正します。
 例)パッケージエクスプローラ - Servers/sayama-config/server.xml
 ※各自命名しているサーバ名によって違います。
 ※念の為、コピーしておくといいでしょう。

59行目辺りにある、
    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->
※パスワードを変更した場合、上記のConnectorの属性に「keystorePass="パスワード"」を追加してください。
※キーストアの保存場所を変更した場合、上記のConnectorの属性に「keystoreFile="保存場所パス/.keystore"」を追加してください。

という部分のコメント処理を外します。

■動作確認
・サーバーを起動します。(エラーが表示されないことを確認してください)
・https/localhost:8443/xxxxにアクセスします。
・認証エラーが出ますが、画面が表示されれば完了です。