JAVA用のアプリケーションサーバがほしくて、
さくらクラウドでCentOS7の環境構築した時の備忘録として、纏めておく。

まずは、パッケージのアップデート

# yum update
Apacheのインストールする手順
# yum -y install httpd
# service httpd start ← Apacheのスタート
# firewall-cmd --list-ports ← 現在利用可能なポートを確認します。
# firewall-cmd --add-service=http ← ウェブサーバーのサービス(ポート)を開きます。
# firewall-cmd --permanent --add-service=http ← ウェブサーバーのサービス(ポート)を再起動しても開くように設定します。
# chkconfig httpd on ← Apacheを「自動起動する」に設定
Oracle の JDK 8 をインストールする手順
# yum search openjdk
# yum install java-1.8.0-openjdk
# java -version
Apache Tomcat 8 を CentOS 7 にインストールする手順
# useradd -s /sbin/nologin tomcat ← ユーザーの追加
# cd ~ ← ルート直下に移動 
# curl -O http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz ← ここからインストール
# tar -xzvf ~/apache-tomcat-8.5.11.tar.gz
# mv ~/apache-tomcat-8.5.11 /opt
# chown -R tomcat:tomcat /opt/apache-tomcat-8.5.11
サービスの作成と登録

CentOS 7 からはサービスを systemd が管理するようになりました。 ここでは Apache Tomcat 8 をサービスとして登録します。 まずは /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.5.11/tomcat.pid
 RemainAfterExit=yes

 ExecStart=/opt/apache-tomcat-8.5.11/bin/startup.sh
 ExecStop=/opt/apache-tomcat-8.5.11/bin/shutdown.sh
 ExecReStart=/opt/apache-tomcat-8.5.11/bin/shutdown.sh;/opt/apache-tomcat-8.5.11/bin/startup.sh

[Install]
 WantedBy=multi-user.target

続いてサービスに登録します。

# chmod 755 /etc/systemd/system/tomcat.service
# systemctl enable tomcat
# ln -s '/etc/systemd/system/tomcat.service' '/etc/systemd/system/multi-user.target.wants/tomcat.service'
Apache Tomcat 8 の起動と停止
# systemctl start tomcat
# systemctl stop tomcat
Apache2.4とTomcat8を連携させる

Tomcatには、HTTPサーバーとしての機能も持っていますがHTTPリクエストはApacheが受け Tomcatで処理された結果をApacheが返すように設定します。

ApacheとTomcatの間は、mod_proxy_ajpモジュールによって受け渡しが行われます。

Apache側の設定(00-proxy.conf)

/etc/httpd/conf.modules.d/の「00-proxy.conf」でajpが設定されているか確認します。

「00-proxy.conf」ファイルに次の2行があるか確認します。

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

/etc/httpd/conf.d/ディレクトリへサーブレットへのリクエストがあった場合の設定をproxy-ajp.confとして作成します。 例えば、「http://ドメイン名/docs/」へリクエストがあった場合、Tomcat側の「docs」が呼び出されるよう次のように設定します。

<Location /docs/>
    ProxyPass ajp://127.0.0.1:8009/docs/
</Location>
Tomcat側の確認と設定

次にTomcat側の設定を行います。
/opt/apache-tomcat-8.0.32/conf/server.xmlに次の設定があるか確認します。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Tomcatのデフォルトポート(ポート番号8080)が有効になっているので、次の設定を コメントアウトします。

<!--
<Connector port="8080" protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443" />
-->

再起動

# service httpd restart

以上でTomcatの設定は完了です。