2019.01.31
[CentOS6.10] Apache2とTocat7の連携
ApacheとTomcatの連携をする目的は、インターネットからのリクエストはhttpdで受けJavaで動的に制御する部分はTomcatで行わせたいためです。
Apache httpdはやはりWebサーバとしては強力ですからね。
ApacheとTomcatと連携するのに必要なものは、AJP(Apache Jserv Protocol)というプロトコルです。
AJPはTomcatと通信するためのプロトコルで2019年現在は1.3が最新のようです。
Apacheが受け付けたリクエストをTomcatへ通信するのに AJPプロトコルを利用します。
ApacheでAJPを利用するには、 mod_proxy_ajpを有効にします。
以下のような設定になっています。
確認だけで何もしなくてもOKだと思います。
/usr/share/tomcat/conf/server.xml
( /etc/tomcat/server.xml )
1 2 |
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" UseBodyEncodingForURI="true" URIEncoding="UTF-8" /> |
この設定の意味は、以下の通りです。
・ポート8080で、HTTP/1.1の通信を受け付ける。
・ポート8009で、AJP/1.3の通信を受け付ける。
上記の8080の設定があるために以下のURLのようにTomcatの管理画面にアクセスすることができます。
http://(IPアドレス:8080)/manager/html
※8080ポートのtomcat管理画面を公開しないなら
この 8080ポートの設定を削除する事を忘れないでください。
以下の2つのモジュールが有効になっていることを確認します。
おそらくデフォルトで有効になっていると思いますが、コメントアウトなどされている場合は外して有効にしましょう。
1 2 3 |
$ vi /etc/httpd/conf/httpd.conf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so |
/etc/httpd/conf.d ディレクトリに proxy_ajp.confというファイルを作成します。
「conf.d」ディレクトリに ○○○.confという形でファイルを作成すると
自動的に設定ファイルとして読み込んでくれます。
ajp関連の設定は全てこの proxy_ajp.confにまとめることにします。
どのようなパスにアクセスされたら Tomcatと連携するのかを設定します。
sampleディレクトリへのアクセスを Tomcatのtestアプリと連携したい場合は
次のようになります。
1 2 |
$ vi /etc/httpd/conf.d/proxy_ajp.conf ProxyPass /sample/ ajp://localhost:8009/test/ |
以下のような書き方もできます。
1 2 3 |
<Location /sample> ProxyPass ajp://localhost:8009/test/ </Location> |
1 |
$ service httpd restart |
以上でApache httpdとtomcatの連携ができるようになりました。