ApacheへのHTTPリクエストをTomcatに転送する
Apacheに80ポートできたHTTPリクエストを、Tomcatの8080ポートへ転送する。
目次
1.概要
2.構成図
3.前提
4.Apache設定
5.Tomcat設定
6.設定確認
1.概要
WEBアプリケーション動作環境としてApacheとTomcatを連携させるため、
任意のパスのApache80ポートへのリクエストを、Tomcat8080ポートへ転送する。
2.構成図
構成図は以下の通り。
OS | CentOS 7 |
Apache | 2.4.46 |
Tomcat | 9.0.44 |
3.前提
・Apacheがインストールされていること
・Tomcatがインストールされていること
4.Apache設定
Apache設定ファイル「httpd.conf」を編集する。
編集対象ファイル | {Apacheインストールディレクトリ}/conf/httpd.conf |
下記proxyモジュール記載行の「#」を消してコメント解除する。
LoadModule proxy_module modules/mod_proxy.so |
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so |
下記転送設定を追記する。
ProxyPass /{転送元のApacheパス} ajp://localhost:8080/{転送先のTomcatパス} |
ProxyPassReverse /{転送元のApacheパス} ajp://localhost:8080/{転送先のTomcatパス} |
例)
「http://{ドメイン}/application」を「http://{ドメイン}/application:8080」に転送する場合
~略~
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
~略~
ProxyPass /application/ ajp://localhost:8080/application/
ProxyPassReverse /application/ ajp://localhost:8080/application/
5.Tomcat設定
Tomcat設定ファイル「server.xml」を編集する。
編集対象ファイル | {Tomcatインストールディレクトリ}/conf/server.xml |
Connectorタグの「port=”8080″ protocol=”HTTP/1.1″」と記載している箇所をコメントアウトし、「port=”8080″ protocol=”AJP/1.3″」と設定する。
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<Connector port="8080" protocol="AJP/1.3"
connectionTimeout="20000"
redirectPort="8443"
secretRequired="false" />
6.設定確認
「4.Apache設定」で設定した転送元ポートへリクエストを送り、accessログか画面からリクエストが転送されたことを確認する。