株式会社エスロジカル
株式会社エスロジカル
SSL証明書(3,300円/1年~ DV、OV、EV)、セキュリティ、Web開発、Linux開発、Go言語

Jakarta Tomcat:使用するポート(3.2.4を前提に)

技術ドキュメント目次 -> Jakarta Tomcat -> 使用するポート(3.2.4を前提に)

本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。

サイフにやさしいSSL証明書
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。


◆ はじめに

Tomcat(3.2.4であることを前提にします)は、
デフォルトの設定で起動すると、
8080 と 8007 の2つのポートで Listenして外部からの接続を受け付けます。

(Tomcat 4系 も 8080 で接続を受け付けますが、それ以外のポートの動作がもう少し複雑です。)

確認するために、
Tomcat の起動中に netstat コマンドを実行すると、次のような出力が得られます。
(netstat コマンドの -p オプション(処理しているプロセスを表示)は、
 環境によっては実装されていません。)

# netstat -anp |grep LISTEN |grep java
tcp      0      0 0.0.0.0:8007        0.0.0.0:*         LISTEN    12476/java
tcp      0      0 0.0.0.0:8080        0.0.0.0:*         LISTEN    12476/java
#


それぞれのポートの役割は次のようになります。
なお、
8080 や 8007 といったポート番号は、server.xmlの設定によって変更することが可能です。

server.xml より、ポート番号の指定箇所を抜粋
        <!-- Normal HTTP -->
        <Connector className="org.apache.tomcat.service.PoolTcpConnector">
            <Parameter name="handler"
                value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
            <Parameter name="port"
                value="8080"/>
        </Connector>

        <!-- Apache AJP12 support. This is also used to shut down tomcat.
          -->
        <Connector className="org.apache.tomcat.service.PoolTcpConnector">
            <Parameter name="handler"
       value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
            <Parameter name="port" value="8007"/>
        </Connector>


◆ 8080ポート

Tomcatがスタンドアロンの Webサーバとして機能する際、
ブラウザからのリクエストを受け付けるために litesnするポートです。
8080ポートでlistenしているTomcatはにアクセスするためには、
http://192.168.1.1:8080/**** といったようにアクセスします。

server.xml の設定をコメントアウトすることで、
8080ポートは使用しないように変更することも可能です。
(その際は、ブラウザからのリクエストはApacheが受け付けること
 ができるように、下記のAJP12プロトコルなどを使用してください。)

◆ 8007ポート

次の2つの目的でlistenしています。

・デーモンの終了を行うため

        Tomcatがデーモンの終了の制御を行うために listenしています。
        tomcat.sh stop を実行すると、8007ポートに対して制御用の
        データが送られ、Tomcat が終了します。

・AJP12などのプロトコルを使用して、Apacheと連動して稼動するため

        mod_jk 等のモジュールをApacheに組み込むことで、
        Apache と Tomcat が連動することが可能になります。
        その際は、次のようにしてリクエストが処理されます。

        +--------+  1--->  +--------+  2--->  +--------+
        | Client |         | Apache |         | Tomcat |
        +--------+  <---4  +--------+  <---3  +--------+

        (Apache は 80番で Listenして、Tomcat は 8007番で
          Listenしています。)

        1. クライアントからのリクエストを Apacheが受け取る
        2. ApacheがTomcatに処理を依頼する(※)、
        3. Tomcatがレスポンスデータを作成しApacheにそれを返す
        4. Apacheがクライアントにレスポンスを返す。

        上記のような処理を行うためのプロトコルの1つが AJP12です。
        (Tomcatのバージョンなどによって、同じようなことを異なる
         プロトコルで行います。詳しくはお使いのバージョンのTomcat
         のドキュメントをご参照ください。)

        (※)
        特定のディレクトリへのアクセスのみ、Tomcatが処理を行い、
        それ以外へのアクセスは Apacheが処理を行う、と指定する
        ことが可能です。
        また、
        TomcatはApacheほど強固ではないので、静的なコンテンツを
        扱うにはやはり Apache が処理したほうが好ましいです。



■ Jakarta Tomcat についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. このドキュメントへの評価をご選択ください。
         

2. ご感想をお書きください。