Apache Httpd2.4とTomcat9の連携

環境

インストールの詳細は以前の記事を参照。

https://wankomagic.hatenablog.com/entry/2020/04/09/165254

 

Httpdの設定

/etc/httpd/conf.modules.d/00-proxy.conf に以下があることを確認する。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

/etc/httpd/conf.d/tomcat.conf (名前は何でもよい)にTomcatへのリダイレクトの設定を記述する。tomcat側でキーワードチェックをしない場合はsecret=passwordの記述は不要。

ProxyPass /docs/ ajp://localhost:8009/docs/ secret=password
ProxyPass /examples/ ajp://localhost:8009/examples/ secret=password

 

Tomcatの設定

/usr/local/tomcat/conf/server.xml のHostタグ内にAJPからのアクセスに対するリダイレクトの設定を記述する。コメントアウトで書かれているのでコメントアウトを外して、secret="pasword"を追記する。secretの値はhttpdで設定したものにする。

<Connector protocol="AJP/1.3"
  address="::1"
  port="8009"
  secret="password"
  redirectPort="8443" />

secretは9で追加されたAJPアクセスに関するセキュリティ設定。8ではrequiredSecretに該当するが、デフォルトnullではエラーになる(503)。secretRequired="false"を記述してチェックしないようにするか、secret="httpdで記述したキーワード"を記述してチェックを通すようにする必要がある。

https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html

 

 

SELinuxの設定

Httpdから別のポートへの接続を許可する。

setsebool -P httpd_can_network_connect on

RHEL7公式ドキュメント

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-managing_confined_services-the_apache_http_server-booleans

httpd_senuxのマニュアル

https://linux.die.net/man/8/httpd_selinux

 

これを知ったのは次の記事で、ポリシー設定は他にもある。触ってみながら、ポリシーを見直す。

https://computingforgeeks.com/install-apache-tomcat-9-on-linux-rhel-centos/

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_relay 1
sudo setsebool -P httpd_graceful_shutdown 1
sudo setsebool -P nis_enabled 1 

 

Httpd, Tomcatを再起動して、ブラウザから動作確認する。

 

 補足