3.4.1 Apache側の設定

それでは演習を始めましょう。EC2インスタンスにログインしている状態から開始します。まずはApacheの設定ファイルを編集し、2つのモジュール(※2)を追加します。

(※2)モジュールとはApacheに適用できる追加プログラムのことです。

 

1. 下記コマンドでviを使ってモジュール設定のファイルを開きます。

$ sudo vi /etc/httpd/conf.modules.d/00-proxy.conf

ファイル内から下記の2つの記述があることを確認します。この2つが今回必要なモジュールを読み込む記述になります。

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

もし、下記のようにこれらの記述の最初に「#」がある場合、その行はコメントアウトされているためモジュールの読み込みが有効になっていません。「#」を削除して設定を有効にし、ファイルを上書き保存する必要があります。

# LoadModule proxy_module modules/mod_proxy.so

# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

 

2. 次にAJP連携用の設定ファイルを作成します。下記コマンドでファイルを新規に作成します。

$ sudo vi /etc/httpd/conf.d/proxy-ajp.conf

下記を記述し保存します。「YOUR_PASSWORD」の部分は適切なパスワードを決め、設定します。

ProxyPass /app/ ajp://127.0.0.1:8009/ secret=YOUR_PASSWORD

ProxyPassReverse /app/ ajp://127.0.0.1:8009/ secret=YOUR_PASSWORD

 

ポイント

・ProxyPassは、リクエストがApacheからTomcatへの転送対象であると判断されるパスの形式を指定しています。今回の設定は「http://ホスト名/app/」のようなアクセスが来た場合に、APサーバーへ転送するようにしています。

・ProxyPassReverseはリダイレクト時に使用される設定です。

 

3. ここからはTomcat側の設定です。下記コマンドでTomcatサーバーの設定ファイルを開きます。

$ sudo vi /opt/apache-tomcat-9.0.40/conf/server.xml

 

4. 下記の記述を探します。

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

「<!--」と「-->」で記述場所全体を囲みます。

<!--

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

-->

 

ポイント

・Connectorは各プロトコルによる通信のための窓口のような仕組みに関する設定です。Tomcatはデフォルトでは、ポート番号8080でHTTP通信を受け付ける、つまりWebサーバーとして機能するようになっています。

・「<!--」と「-->」で囲むと、その部分はコメントとなり設定情報が無効となります。

これによりTomcatとの直接のHTTP通信ができないようにしています。

 

5. 下記の記述を探します。

<!--

<Connector protocol="AJP/1.3"

               address="::1"

               port="8009"

               redirectPort="8443" />

-->

コメントを削除し、次のように記載を修正します。太字部分を修正および追加しています。

<Connector protocol="AJP/1.3"

               address="127.0.0.1"

               port="8009"

               redirectPort="8443"

secret="YOUR_PASSWORD" />

 

ポイント

・AJPによる通信を許可する設定です。「YOUR_PASSWORD」の部分には手順2で設定したものと同じパスワードを記述します。

 

6. 設定を反映するため、Apacheの再起動を行います。

$ sudo systemctl restart httpd

 

7. Tomcatも同様に再起動を行います。

$ sudo systemctl restart tomcat

 

8. 設定は以上となります。ブラウザからアクセスしてみましょう。下記のアドレスでアクセスします。

http://(パブリックIPアドレス)/app/

下の画面が表示されたら成功です。

ポイント

・手順2ProxyPassとして「/app/」を設定したので、アクセスする際は「/app/」がURLの最後につきます。