Tomcat と Apache連携
前提条件
インストールガイドは以下のソフトウェアがインストールされていることを前提としています。
インストールされていない場合は先にインストールしてください。
ソフトウェア名 | バージョン | 配布元 |
---|---|---|
Java | AdoptOpenJDK ダウンロード手順インストール手順 |
AdoptOpenJDK |
Tomcat | Tomcat 9.0 | Apache Software Foundation |
Apache | 2.4.5以降 | Apache Software Foundation |
GroupSession | GroupSession最新版 | 日本トータルシステム株式会社 |
ご注意ください
GroupSessionへは80ポートを利用してアクセスすることになります。
環境によってはWindowsファイアウォールやiptablesなどの設定で80ポートがブロックされている場合があるので開放されているか確認してください。
以下の手順はユーザやファイルのパーミッションについては明記していません。
別途環境に合わせてパーミッションの設定を行ってください。
Tomcatの設定ファイル(server.xml)を編集
ここではC:¥Program Files¥Apache Software Foundation¥Tomcat9.0にインストールしているものとします。
C:¥Program Files¥Apache Software Foundation¥Tomcat9.0¥conf¥server.xmlファイルを開きます。
Service要素内に8009のポート設定を追記し、AJP接続用のポートを開放します。
Tomcat9.0のデフォルトの設定の場合は115〜121行目にすでに記載されており、コメントアウトされています。
8009ポートはApacheとTomcat間のAJP通信のみで使用するため外部公開する必要はありません。
※以下のバージョン以降のTomcatを対象とします。
- Apache Tomcat 9.0.31~
- Apache Tomcat 8.5.51~
- Apache Tomcat 7.0.100~
ApacheとTomcatで同じサーバで動作させる場合
server.xml
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
-->
【変更後】(コメントアウトも外してください)
<Connector protocol="AJP/1.3"
port="8009"
redirectPort="8443"
secretRequired="false" />
ApacheとTomcatで異なるサーバで動作させる場合
server.xml
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443"
-->
【変更後】(コメントアウトも外してください)
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
redirectPort="8443"
secret="{パスワード文字列}"/>
Apacheの設定ファイル(httpd.conf)を編集
Tomcat + GroupSession、Apache が既にインストールされていることを確認してください。
Apacheがインストールされていない場合はApache Http Server Projectのサイトからダウンロードし、インストールしてください。
ここではC:¥Program Files¥Apache Software Foundation¥Apache2.4¥にインストールしているものとして、
Apacheのmod_proxy_ajpモジュールを使用した連携手順を説明します。
テキストエディタを開きApacheの設定ファイル(httpd.conf)に下記の内容を追記します。
例:C:¥Program Files¥Apache Software Foundation¥Apache2.4¥conf¥httpd.confとなります。
編集内容は以下の3点です。
1.mod_proxyモジュール読み込みを設定
2.mod_proxy_ajpモジュール読み込み設定
3.Locationディレクティブを追記
ApacheとTomcatで同じサーバで動作させる場合
httpd.conf
----------最終行に追記します----------
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Location /gsession/>
ProxyPass ajp://localhost:8009/gsession/
</Location>
ApacheとTomcatで異なるサーバで動作させる場合
httpd.conf
----------最終行に追記します----------
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Location /gsession/>
ProxyPass ajp://{Tomcatサーバホスト名}:8009/gsession/ secret={パスワード文字列}
</Location>
secretに入力する{パスワード文字列}はTomcatの8009ポートの設定に記述したものと同じものを記載します
チャットプラグインを使用する場合
GroupSession v4.9.0よりチャット機能が追加されております。
チャット機能ではWebSocketという技術を使用するためApaheとTomcatに設定を追加する必要があります。
Tomcatの設定
C:¥Program Files¥Apache Software Foundation¥Tomcat 9.0¥conf¥server.xmlファイルを開きます。
Service要素内に8080のポート設定を追記し、WebSocket用のポートを開放します。
Tomcat9.0のデフォルトの設定の場合は69~71行目にすでに記載されています。
server.xml
connectionTimeout="20000"
redirectPort="8443" />
8080ポートはApacheとTomcat間のWebSocket通信のみで使用するため外部公開する必要はありません。
Apacheの設定
Tomcatの設定で開放した8080ポートに接続できるようにApacheの設定をします。
「Apacheの設定ファイル(httpd.conf)を編集」で設定したLocationディレクティブに、以下のように マーカー部分を追記します。
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
<Location /gsession/>
ProxyPass ajp://localhost:8009/gsession/
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]
</Location>
GroupSessionへアクセス
Tomcatを起動し、続いてApacheも起動します。
正常にGroupSessionにアクセスできるかブラウザを開きアクセスしてみます。
ブラウザから、http://[ サーバ名 ]/gsession/を指定し、アクセスします。 GroupSessionログイン画面が表示されれば完了です。
下記ユーザID、パスワードを入力してログインしてください。
ユーザID | admin |
---|---|
パスワード | admin |