Help us understand the problem. What is going on with this article?

ApacheとTomcatを連携させてみた

More than 3 years have passed since last update.

ちょっと使いそうな感じだったので、いろいろネット上の記事を見つつ、検証してみた。


参考にしたサイト

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)

※CPUやメモリはデフォルトのまま
スクリーンショット 2017-05-23 9.20.25.png


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>

スクリーンショット 2017-05-23 9.30.12.png
[アップロードに失敗しました スクリーンショット 2017-05-23 9.30.12.png: 不明なエラー]()


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

スクリーンショット 2017-05-23 9.46.59.png


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
----------------

スクリーンショット 2017-05-23 9.54.13.png


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/

スクリーンショット 2017-05-23 10.01.42.png


bft
人とシステムをつくる会社
http://www.bfts.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away