LinuxサーバーにインストールしたApacheとTomcatを連携してみた

これまで、LinuxサーバーへのApacheとTomcatのインストールと、それらを起動しブラウザでテストページを表示するまでのプロセスをお伝えしてきました。

第3回目となるこの記事では、ApacheとTomcatの連携に焦点を当て、Apacheで受けた通信をTomcatに転送する方法までのプロセスを皆さんに紹介します。

※Apache/Tomcatについてはこちらの記事で設定からブラウザでページを表示までのプロセスを紹介しております。

構成情報

  • Red Hat Enterprise Linux 8.7
  • Tomcat 9.0.85
  • Apache 2.4.6

※今回はAzure上にデプロイした同一のLinuxサーバーにApacheとTomcatをインストールしています。

ApacheとTomcatを連携する目的とは

ApacheとTomcatを連携させる目的は、静的なコンテンツと動的なコンテンツを組み合わせた高度なWebアプリケーションを構築し、Webアプリケーションサーバーとして動作させることです。

Apacheは静的なコンテンツの配信に優れていて、Tomcatは動的なコンテンツの処理に特化しています。両者を連携させることで、Apacheは静的なコンテンツの配信を担当し、Tomcatは動的なコンテンツの処理を担当する、といった形で、それぞれの得意分野を生かしたWebアプリケーションサーバーを構成する事が出来ます。

サーバーの動作確認 その1

Apacheの動作確認

ブラウザを起動し【サーバーのIPアドレス】を入力後に、Apacheのテストページが表示されることを確認します。

Tomcatの動作確認

ブラウザを起動し【サーバーのIPアドレス:8080】を入力後に、Tomcatのテストページが表示されることを確認します。

Apacheの設定変更

httpd.confの設定変更

httpd.confの設定を以下のコマンドで変更を行います。

vi /etc/httpd/conf/httpd.conf

ファイルを開いたら最下部に設定を行います。「http://サーバーのIPアドレス/」へリクエストがあった場合、Tomcat側の「デフォルトページ」が呼び出されるよう次のように設定します。

ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/

設定の反映

httpd.confに設定を行った後に以下のコマンドを入力し、設定を反映させます。

systemctl restart httpd.service

Tomcatの設定変更

server.xmlの設定変更

server.xmlの設定を変更するために、以下のコマンドを実行します。

vi /opt/apache-tomcat-9.0.85/conf/server.xml

Tomcatのデフォルトポート(ポート番号:8080)が有効になっているので、次の設定をコメントアウトし、無効化します。

デフォルトの設定

   <Connector port="8080" protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="8443"
       maxParameterCount="1000"
       />

設定変更後

   <!--
     <Connector port="8080" protocol="HTTP/1.1"
     connectionTimeout="20000"
     redirectPort="8443"
     maxParameterCount="1000"
     />
    -->

Tomcatのデフォルトポートをコメントアウト後に、ポート番号:8009のコメントアウトを外して有効化します。

デフォルトの設定

   <!--
    <Connector protocol="AJP/1.3"
        address="::1"
        port="8009"
        redirectPort="8443"
        maxParameterCount="1000"
        />
    -->

設定変更後

    <Connector protocol="AJP/1.3"
        address="0.0.0.0"
        port="8009"
        redirectPort="8443"
        maxParameterCount="1000"
        secretRequired="false"
         />

設定の反映

sever.xmlに行った設定変更を反映させるために、以下のコマンドを入力します。

systemctl restart tomcat.service

サーバーの動作確認 その2

Apacheの動作確認

ブラウザを起動し【サーバーのIPアドレス】を入力後に、Tomcatのテストページが表示されることを確認します。

「サーバーの動作確認 その1」ではサーバーのIPアドレスを入力後に表示されたのはApacheのテストページでしたが、設定変更後はTomcatのテストページが表示されます。

Tomcatの動作確認

ブラウザを起動し【サーバーのIPアドレス:8080】を入力後に、Tomcatのテストページが表示されないこと確認します。

おわりに

3回にわたりApacheとTomcatのインストールから連携に至るまでのプロセスをご紹介しました。

オープンソースであり、いずれも無料で検証することが可能ですので、ぜひ試してみてください。

次回はもっと掘り下げた内容をお届けしたいと考えております。

執筆担当者プロフィール
石黒 允規

石黒 允規(日本ビジネスシステムズ株式会社)

ネットワークインテグレーション部に所属しており、主にAzureに関する業務を行っています。 JBS野球部にも所属しており、週末を楽しく過ごしております

担当記事一覧