Apacheの設定
Apache側で転送用のモジュールを有効化します。ここではApacheのインストールディレクトリが「/opt/httpd-2.4.43」である場合について書いていますので、適宜読み替えてください。
まずは「/opt/httpd-2.4.43/conf/httpd.conf」をテキストエディタで開き、以下が記述されている行のコメントアウトをはずして有効化します。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
次に、Apacheが受けたリクエストの転送先を設定をするため「/opt/httpd-2.4.43/conf/extra」ディレクトリの「httpd-proxy.conf」を編集します。
「extra」ディレクトリや「httpd-proxy.conf」ファイルがない場合は作成しましょう。
「httpd-proxy.conf」をテキストエディタで開き、以下を追記して保存します。
以下のように記載すると、Apacheへの全てのリクエストをajpによって192.168.1.12のポート8009に転送できます。
ProxyPass / ajp://localhost:8009/
このファイルをApacheに読み込ませるために「/opt/httpd-2.4.43/conf/httpd.conf」をテキストエディタで開き、以下を追記します。
Include conf/extra/httpd-proxy.conf
以上でApache側の設定は終わりです。
Tomcatの設定
ここでのTomcatのインストールディレクトリは「/opt/tomcat-9.0.34」として進めます。
「/opt/tomcat-9.0.34/conf/server.xml」をテキストエディタで開き、以下から始まる記述を探します。
<Connector protocol="AJP/1.3"・・・
ここで指定されているポートが「port="8009"」となっていることを確認しましょう。
上記がコメントアウトされている場合、コメントアウトをはずして有効化しておきます。
ここまでできたらTomcatとApacheをそれぞれ再起動します。
ブラウザから80番ポートへアクセスするとTomcatへ転送されるようになります。
しかし、この状態でブラウザからアクセスして表示される画面はエラーとなってしまいます。
エラーとなる原因を調べるため、Apacheのログファイルを見てみます。
「/opt/httpd-2.4.43/logs」にある「error_log」を開きましょう。
Connection refusedとなっていて、ajpでうまく転送できていないようです。
AH00957: AJP: attempt to connect to 192.168.1.12:8009 (192.168.1.12) failed AH00896: failed to make connection to backend: 192.168.1.12
Tomcatの起動ログを確認してみます。「/opt/tomcat-9.0.34/logs/catalina.out」を開くと、以下のようにajpに関するメッセージが出ています。
The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid.
secretRequiredをfalseにすることで対応します。
「/opt/tomcat-9.0.34/conf/server.xml」をテキストエディタで開き、ajpのConnectorの部分に「secretRequired="false"」を追記します。