忍者ブログ

IT関連について日誌を書いています。

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Tomcat5.5でクラスタリングを行います。
VirtualBoxを使って、Windowsマシン上でDebianを動作させてます。

OS IPアドレス
Debian4.0 192.168.1.5
WindowsXP 192.168.1.9

【server.xmlの編集】
Tomcat5.5では、<Cluster>タグのコメントを解除すればクラスタリングが行える。
さらに、ファーミング機能を使いたいと思います。
ファーミングは、1台のマシンにWARファイルを転送すると、全てのマシンにデプロイ(配置)される仕組みです。DebianのTomcatのserver.xmlの<Cluster>タグは、以下のように変更しました。

 
 
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="228.0.0.4"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4001"
                tcpSelectorTimeout="5000"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"
                waitForAck="true"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                  
            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                    tempDir="/usr/local/tomcat5.5/temp/"
                    deployDir="/usr/local/tomcat5.5/webapps/"
                    watchDir="/usr/local/tomcat5.5/listen/"
                    watchEnabled="true"/>
                     
            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
        </Cluster>


ファーミングは<Deployer>タグに記述することで動作します。
WindowsのTomcatの場合も同様に、インストールしたディレクトリを指定します。
tempDir="/usr/local/tomcat5.5/temp/" 作業用
deployDir="/usr/local/tomcat5.5/webapps/" ここにデプロイされる
watchDir="/usr/local/tomcat5.5/listen/" WARファイルを監視する
watchEnabled="true" ファーミングを実行


参考サイト
www.thinkit.co.jp/cert/compare/14/1/4.htm
www.thinkit.co.jp/cert/compare/14/2/3.htm
m97087yh.seesaa.net/category/5814610-5.html
www.iwahrt.com/iwahrt/ListProblemSolution.do


PR
【シェルスクリプト作成】
ファイル名を「tomcat」として以下のように記述する。
JDKとTomcatのインストール先は、「
/usr/local/jdk1.6.0_11」、「/usr/local/tomcat5.5」とする。

#!/bin/sh

export CATALINA_HOME=/usr/local/tomcat5.5
export JAVA_HOME=/usr/local/jdk1.6.0_11
export PATH=$PATH:/usr/local/jdk1.6.0_11/bin

case "$1" in
    'start')
        if [ -f /usr/local/tomcat5.5/bin/startup.sh ]; then
        echo "Starting the tomcat service"
        "/usr/local/tomcat5.5/bin/startup.sh"
        fi
    ;;
    'stop')
        echo "Stopping the tomcat service."
        "/usr/local/tomcat5.5/bin/shutdown.sh"
    ;;
    'restart')
        $0 stop
        $0 start
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
    ;;
esac
exit 0


【自動起動登録】
作成したシェルスクリプトを「/etc/init.d/」へ移動させる。
# mv tomcat /etc/init.d/

update-rc.dというコマンドを使って、自動的に起動するように登録する。
# update-rc.d tomcat defaults

起動させないようにするには、以下のようにする。
# update-rc.d tomcat remove

以上で、Tomcatが起動時に動作するようになる。

また、Tomcatの開始、停止は以下のコマンドで行える。
# /etc/init.d/tomcat start
# /etc/init.d/tomcat stop

参考サイト
www.tencs.net/tech/debian/debian-updatercd.html



【.htpasswdの作成】
Apacheに付属している「htpasswd.exe」を用いる。
コマンドプロンプトで以下のように入力する(ユーザ名はuser)

> C:\Apache2\bin\htpasswd.exe -c C:\Apache2\password\.htpasswd user

これで「C:\Apache2\password\」以下に、作成される。


【.htaccessの作成】
次のような内容として保存する。

AuthType Basic
AuthName "Password Area"
AuthUserFile C:/Apache2/password/.htpasswd
require valid-user

このファイルを認証したいディレクトリへ移動させておく。
今回は「C:/Apache2/htdocs」へ移動した。


【httpd.confの編集】
公開ディレクトリが指定されている<Directory>タグがあるので、
以下のように「AllowOverride」を None から All へ変更する

<Directory "C:/Apache2/htdocs">

    AllowOverride None  →    AllowOverride All
   
</Directory>


【確認】
Apacheを起動させ、以下のURLにアクセスする。
http://localhost/
図のような画面が表示され、ログインできることを確認する。
login.png



以上でApache2のBASIC認証設定は終了です。

参考
BASIC認証・.htaccess|Windows2000とApache2
環境は次の通り。
Tomcat5.0.28
OS:WindowsXP
CATALINA_HOME = C:\tomcat5.0.28
JAVA_HOME = C:\Program Files\Java\jdk1.6.0_03

【鍵の作成】
keytoolを使って作成する。これは"JAVA_HOME/bin"にある。
> keytool -genkey -alias tomcat -keyalg RSA

コマンドを実行すると、鍵の情報を求められるので入力する。
これで鍵が生成される("%USERPROFILE%"\.keystore)。
必要に応じて、鍵を任意の場所へ移動。

【Tomcatの設定】
"CATALINA_HOME/conf/server.xml"を編集して、SSLを使えるようにします。

(設定例)
 <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector port="8443"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="C:/.keystore"
               keystorePass="changeit" />

※コメントアウトされているので、解除する
プロトコル:https
ポート番号:8443(apacheと区別)
鍵の場所:"C:/.keystore"
鍵のパスワード:"changeit"

【確認】
SSLが動作していれば、次のURLにアクセスできるはず。
https://localhost:8443/jsp-examples/

参考
Java Tips:TomcatでSSLを使うには?
Tomcat - PukiWiki
以前、Linuxにaptでapache2.2をインストールし、SSLを導入しました。ApacheにSSLを導入
今回は、Apache2.0系をWindowsにインストールして、SSLを導入してみたいと思います。
 2.0系をインストールする理由は、mod_jkを使ったロードバランスが2.2系で使用できないからです。
インストーラは"apache_2.0.63-win32-x86-openssl-0.9.7m.msi"を使用しました。
[Think IT] 第7回:Apache+SSL環境を構築しよう!を参考にしながら、作業を進めます。
以前導入したLinux版とほとんど変わりません。

※なお作業ディレクトリは、"C:\Apache2\bin"とします。


 【httpd.confの編集】 モジュールmod_ssl.soが読み込まれるように、httpd.confを編集します。
#LoadModule ssl_module modules/mod_ssl.so コメントアウトされているので
         ↓
LoadModule ssl_module modules/mod_ssl.so コメントをはずす


【秘密鍵の生成】
 変更なし

 
【公開鍵の生成】
Windowsの場合は、openSSL.cnfを使用するので(?)、以下のコマンドを実行。
> openssl req -config ..\conf\openSSL.cnf -new -key server.key > server.csr


【デジタル証明書の作成】
 変更なし

 以上で、鍵と証明書の作成は完了です。


【ssl.confの編集】
 サーバー名や鍵と証明書の場所を適宜変更します。
 (例)
ServerName www.example.com:443
    ↓
ServerName localhost:443

SSLCertificateFile c:/Apache/conf/ssl.crt/server.crt
  ↓
SSLCertificateFile conf/server.crt

SSLCertificateKeyFile c:/Apache/conf/ssl.key/server.key

SSLCertificateKeyFile conf/server.key

作成した鍵と証明書を設定した場所をコピーします。
 以上で完了のはずですが・・・


【発生した問題】
 以下のエラーログが記録される(logs/error.log)
SSLPassPhraseDialog builtin is not supported on Win32 (key file c:/apache/conf/server.crt)
こちらのサイトに対策が載っていました。 memokami :: Apache/SSL/error の編集
意味は、「パスフレーズ入力ダイアログはWin32じゃサポートしてないよ」らしい。
さっそく、パスフレーズ入力要求を削除した。
> openssl rsa -in server.key -out server.key 再び、鍵と証明書を設定した場所をコピー。
そして、次のコマンドでApacheを起動。
> Apache.exe -k start -D SSL

https://localhost/にアクセスし、SSLが動作していることを確認できた。

個人的には、Linuxの方がインストールや設定が用意であると思います。



環境は次の通り。
* Tomcat5.0.28
* Java(jdk1.6.0_03)
* WindowsXP

【インストール】
以下からTomcat(jakarta-tomcat-5.0.28.zip)を入手します。
http://archive.apache.org/dist/tomcat/tomcat-5/

zipファイルを解凍して、ディレクトリ名をtomcat5.0に変更。
とりあえず、分かりやすいようにCドライブに移動しておく。


【環境変数の設定】
環境変数"JAVA_HOME"が正しく設定されていないと、Tomcatは起動できません。
(例)JAVA_HOME = C:\Program Files\Java\jdk1.6.0_03
のように設定します。

次に、"CATALINA_HOME"も設定します。
必須ではないですが、設定しておくとTomcatのインストール先を明確にできます。
(例)CATALINA_HOME = C:\tomcat5.0


【Tomcatの起動】
Tomcat5.0/binのstartup.batを実行すると、起動できます。
http://localhost:8080/にアクセスすると、Tomcatのトップページが表示されます。
また、
http://localhost:8080/jsp-examples/
http://localhost:8080/servlets-examples/
にサンプルがあります。

参考
Tomcat5の新機能第1回:新機能の概要とインストール
【SSLの導入】
SSLを使うために、OpenSSLをインストールします。
インストールされているかは以下のコマンドで確認できます。
$ openssl version

私の環境にはインストールされてなかったので、apt-getを実行。
# apt-get install openssl


【秘密鍵の生成】
任意のディレクトリで、以下のコマンドを実行します。
# openssl genrsa -des3 1024 > server.key

秘密鍵のパスフレーズ入力を求められるので、入力する。
これで秘密鍵「server.key」が出来上がります。


【公開鍵の生成】
以下のコマンドで公開鍵を生成します。
# openssl req -new -key server.key > server.csr

秘密鍵のパスフレーズを入力し、公開鍵情報を設定します。


【デジタル証明書の作成】
本来ならば、CA局から証明書を発行してもらうのですが、自分で作成したいと思います。次のコマンドを実行します。
# openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt

秘密鍵のパスフレーズ入力を入力して、証明書を作成します。
以上で、鍵と証明書の作成は完了です。



【ApacheとSSLの設定】
SSLの設定ファイルを有効にするために、以下のサンプル
"/usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz"
を任意のディレクトリに解凍し、できたssl.confファイルを編集します。

ServerName www.example.com:443 → ServerName 192.168.1.14:443
<VirtualHost _default_:443> → <VirtualHost 192.168.1.14:443>
ServerNameは適宜変更してください。

"/etc/apache2/sites-available/"にコピーし、"ssl"という名前に変更します。
次に、作成した"server.crt", "server.key"を"/etc/apache2/"へ移動させます。
そして、sslサイトを有効にするために、以下のコマンド実行します。
# a2ensite ssl

以上で設定は完成です。httpsでアクセスすると、無事SSL通信が行われていました。
なおDocumentRootは"/usr/share/apache2/default-site/htdocs"に設定されています。


参考
第7回:Apache+SSL環境を構築しよう!
Debianを用いた自宅サーバ構築
Debian4.0(Linux)に Apacheをインストールしたいと思います。
Apacheのインストールは、apt-getコマンドで行います。
# apt-get install apache2

Apacheの停止は
# /etc/init.d/apache2 start

起動は
# /etc/init.d/apache2 stop

のコマンドを実行します。

バージョンの確認は以下のコマンドで行えます。
# apache2 -version

以下のURLにアクセスして動作を確認できました。
http://localhost/

参考
第2回:Apacheをインストールしてみるのは難しくない」
Designed by 桜花素材サイト