ちょっと使いそうな感じだったので、いろいろネット上の記事を見つつ、検証してみた。
参考にしたサイト
http://www.bnote.net/linux/a_ajp_t.shtml
http://t-team.seesaa.net/article/268330406.html
http://d.hatena.ne.jp/nemunemu10/20110914/1316016268
サーバ環境準備
AWS上にRHEL7環境を構築し、今回の検証に利用する。
なお、利用したAMIは下記のとおり。
RHEL-7.3_HVM_GA-20161026-x86_64-1-Hourly2-GP2 (ami-5de0433c)
Apacheのインストール
yumを利用して、インストールする。
# yum -y install httpd
サービス登録し、起動する。
# systemctl enable httpd.service
# systemctl start httpd.service
# systemctl status httpd.service
SELINUXを無効化する。
# setenforce 0
# getenforce
# sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config
# cat /etc/selinux/config
Firewallを無効化する。
# systemctl stop firewalld
# systemctl status firewalld.service
# systemctl disable firewalld
テストページが表示されることを確認する。
http://<IPADDR>
Tomcatのインストール
Tomcatをインストールする事前条件として、JDK
がインストールされている必要がある。
デフォルトで、「OpenJDK」がインストールされているが、今回は商用環境などで利用する機会の多い、
OracleJDK
をインストールすることとする。
OTNよりOracleJDKのインストール資材をDLし、rpmコマンドを使用してインストールする。
scp -i xxx.pem <ローカル上の転送するファイル> ec2-user@<転送先IPAddress>:<転送先配置パス>
# cd /tmp/work/
# rpm -ivh jdk-8u131-linux-x64.rpm
Tomcat実行ユーザを作成する。
# useradd -s /sbin/nologin tomcat
Tomcatのインストール媒体をDLし、インストールする。
# cd /tmp/work/
# curl -O http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/v8.0.44/bin/apache-tomcat-8.0.44.tar.gz
# tar -xzvf apache-tomcat-8.0.44.tar.gz
# mv apache-tomcat-8.0.44 /opt/
# chown -R tomcat:tomcat /opt/apache-tomcat-8.0.44/
# cat /etc/systemd/system/tomcat.service
----------------
[Unit]
Description=Apache Tomcat 8
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-8.0.44/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/apache-tomcat-8.0.44/bin/startup.sh
ExecStop=/opt/apache-tomcat-8.0.44/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-8.0.44/bin/shutdown.sh;/opt/apache-tomcat-8.0.44/bin/startup.sh
[Install]
WantedBy=multi-user.target
----------------
# chmod 755 /etc/systemd/system/tomcat.service
# systemctl enable tomcat.service
# export JAVA_HOME=/usr/java/default
# export CATALINA_HOME=/opt/apache-tomcat-8.0.44/
# PATH=$PATH:$JAVA_HOME/bin
# systemctl start tomcat.service
# systemctl status tomcat.service
テストページが表示されることを確認する。
http://<IPADDR>:8080
Webアプリケーションマネージャを起動する。
Webアプリケーションマネージャは、WeblogicでいうWeb管理コンソール的なもの。
マネージャにログイン(認証)するために、設定が必要となる。
configの設定を変更する。
cat /opt/apache-tomcat-8.0.44/conf/tomcat-users.xml
----------------
以下の設定を行末に追加する。
<role rolename="manager-gui"/>
<user username="admin" password="pass" roles="manager-gui"/>
----------------
Tomcatのサービスを再起動する。
# systemctl restart tomcat.service
Webアプリケーションマネージャを表示し、ログインできることを確認する。
http://<IPADDR>:8080/manager/html
----------------
user : admin
pass : pass
----------------
ApacheとTomcatの連携設定
まずは、Apache側の設定をする。
# cat /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ディレクトリにサーブレットへのリクエストがあった場合の設定を作成する。
cat /etc/httpd/conf.d/proxy-ajp.conf
<Location /docs >
ProxyPass ajp://localhost:8009/docs
Order allow,deny
Allow from all
</Location>
続いて、Tomcat側の設定をする。
# cat /opt/apache-tomcat-8.0.44/conf/server.xml
----------------
以下の設定が含まれていることを確認する。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
----------------
# cat /opt/apache-tomcat-8.0.44/conf/server.xml
----------------
Apache側からTomcatのページを表示させるため、8080ポートの設定を無効化する。
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
----------------
Apacheのサービスを再起動する。
systemctl restart httpd.service
動作確認
以下のURLに接続し、Tomcat側のページが表示できることを確認する。
http://<IPADDR>/docs/