金子邦彦研究室プログラミングTomcat を用いた Java サーブレット・プログラミングJk, Jk2 コネクタのインストール

Jk, Jk2 コネクタのインストール

コネクタにはいくつか種類があります. Apache バージョン 2.0 以前では、Jk, Jk2 コネクタが有名でした。この Web ページでインストール手順を説明する. Apache Tomcat コネクタとしては,Jk コネクタ あるいは Jk2 コネクタの、どちらか片方を選んでインストールしてください

Jk コネクタのインストール (Linux の場合)

Jk コネクタは,Apache HTTP サーバのモジュール (mod_jk) になっています.

インストールの前に,Apache Tomcat がインストール済みであること.

  1. インストール
    cd /tmp
    tar -xvzof tomcat-connectors-1.2.21-src.tar.gz
    cd native
    ./configure
    make
    make install
    
  2. /etc/httpd/conf.d/jk.conf
    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile /etc/httpd/conf.d/workers.properties
    JkLogFile     /var/log/httpd/mod_jk.log
    JkLogLevel    info
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkRequestLogFormat     "%w %V %T"
    JkMount  /servlets-examples/* ajp13
    JkMount  /jsp-examples/* ajp13
    
  3. /etc/httpd/conf.d/workers.properties
    workers.tomcat_home=/usr/local/apache-tomcat-5.5.23
    workers.java_home=/usr/local/j2sdk1.6.0
    # You should configure your environment slash... ps=\ on NT and / on UNIX
    # and maybe something different elsewhere.
    ps=/
    worker.list=ajp13
    worker.ajp13.port=8009
    worker.ajp13.host=localhost
    worker.ajp13.type=ajp13
    
  4. Apache HTTP サーバの再起動
    /usr/local/apachet2/bin/apachectl -k graceful
    
  5. ポート 8080 は,127.0.0.1 からの接続のみを受け付ける

    Tomcat の conf ディレクトリ (C:\tomcat55\conf) にある server.xml を編集.

    port="8080"についての設定を、次のように書き換える。

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                   port="8080" minProcessors="5" maxProcessors="75"
                   address="127.0.0.1"
                   enableLookups="true" redirectPort="8443"
                   acceptCount="100" debug="0" connectionTimeout="20000"
                   useURIValidationHack="false" disableUploadTimeout="true" />
    
  6. ポート 8009 は,127.0.0.1 からの接続のみを受け付ける

    port="8009"についての設定を、次のように書き換える。

        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8009"
                   address="127.0.0.1"
                   enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    
  7. Apache Tomcat の設定を変えたので,Tomcat を再起動する.

Jk2 コネクタ 2.0.2 のインストール (Windows の場合)

以下,Windows で Jk2 コネクタをインストールする手順を示している. このコネクタは,Apache HTTP サーバのモジュール (mod_jk2) になっています.

なお,Jk2 コネクタは,実はすでにメンテナンスが終了している. Jk コネクタの使用が推奨されている.

インストールの前に,Apache Tomcat がインストール済みであること.

  1. apache のWeb ページからダウンロード

    https://jakarta.apache.org/site/downloads/index.html

    1. 「archives」をクリック
    2. 「tomcat_connectors」⇒「jk2」⇒ 「binaries」⇒ 「win32」
    3. zip形式のファイル(jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49.zip) をダウンロード
  2. 解凍

    conf, doc, modules の3つのフォルダができる. 上記3つのフォルダに対して下記の 3, 4, 5 の手順を行う.

  3. workers2.propetries ファイルのコピー

    conf\workers2.properties.sample を、apache の conf フォルダ (c:\Program Files\Apache Group\Apache2\conf) に workers2.propertiesという名前でコピー(ファイル名の変更)する.その後,workers2.properties の内容を変更する.

    [変更前] [uri:/examples/*]
    [変更後] [uri:/servlets-examples/*]
    
  4. Apache の conf ファイル conf/httpd.conf の修正
    1. apache のhttpd.conf の末尾に「LoadModule jk2_module modules/mod_jk2.so」の行を追加する.
    2. 上記1で追加した行の直後に,「conf\ mod_jk2.conf.sample」の中身をコピー&ペーストする.
    3. 上記2で追加した行のうち JkSet config.file の行は UNIX 用の設定になっているので, パスを変更する.
      [変更前] JkSet config.file /usr/local/etc/apache2/workers2.properties
      [変更後] JkSet config.file conf/workers2.properties
      
    4. 上記、1,2,3の結果は、次のようになる
      LoadModule jk2_module modules/mod_jk2.so
      <IfModule mod_jk2.c>
          #-----------------------------------------------
          # Where to find the workers2.properties file
          #-----------------------------------------------
          #
          JkSet config.file conf/workers2.properties
      </IfModule>
      
    5. (必要なら)apache のhttpd.conf のカスタマイズを行う
  5. modules\mod_jk2.so ファイルのコピー

    付属の modules\mod_jk2.so を、apache の modules ディレクトリ (c:\Program Files\Apache Group\Apache2\modules) にコピー

  6. docs ファイルのコピー

    doc ディレクトリの中身を,C:\tomcat55\docsのディレクトリにコピーする.

  7. ポート番号の設定 Tomcat の conf ディレクトリ (c:\tomcat55\conf) に,ファイルjk2.properties を作成する. このファイルには,ポート番号の設定を行う.そのために,次の行を追加する.
        「channel Socket.port=8009」
    
  8. ポート 8080 は,127.0.0.1 からの接続のみを受け付ける

    Tomcat の conf ディレクトリ (C:\tomcat55\conf) にある server.xml を編集.

    port="8080"についての設定を、次のように書き換える。

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                   port="8080" minProcessors="5" maxProcessors="75"
                   address="127.0.0.1"
                   enableLookups="true" redirectPort="8443"
                   acceptCount="100" debug="0" connectionTimeout="20000"
                   useURIValidationHack="false" disableUploadTimeout="true" />
    
  9. ポート 8009 は,127.0.0.1 からの接続のみを受け付ける

    port="8009"についての設定を、次のように書き換える。

        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8009"
                   address="127.0.0.1"
                   enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    
  10. Apache Tomcat の設定を変えたので,Tomcat を再起動する.

テスト実行

Tomcat に付属のサンプルファイルを使ってテスト

  1. Tomcat の再起動: c:\tomcat55\bin\tomcat5w.exe を使用
  2. apache の再起動:
  3. 下記の URL を使い、servlets-examples のページを開く. 「:8080」を付けない.Web サーバにアクセス.

    http://localhost/servlets-examples

  4. Tomcat に新しくクラス定義を追加したときは, Apache の conf\workers2.properties を編集して,クラス定義のあるディレクトリについての設定を追加する.

メモ

今後、Tomcat の c:\tomcat55\webapps\cgi\WEB-INF\classes\ ディレクトリには、クラス名.java のファイルが多数置かれることになる。 http://localhost/cgi/クラス名という URL を使って、このクラスの doGet メソッドが起動されるという仕組みになっている。