前提
Java,Apacheがインストールされていること
Java | OpenJDK 16.0.1 |
Apache | Apache/2.4.6 |
それぞれのインストール手順はこちら
Tomcat用ユーザを作成
以下のコマンドにてユーザを追加する
なお、ホームディレクトリは必要ないので、作成しないでおく
useradd -M tomcat
バイナリファイルを取得
以下のTomcat公式ページより、バイナリファイルを取得する
バイナリファイルの配置
取得したファイルを、FTPなどを利用しサーバへアップロードする
バイナリを展開
以下コマンドにて、配置したバイナリファイルを展開する
tar zxvf apache-tomcat-9.0.52.tar.gz
移動
展開したディレクトリを、任意の場所へ移動する
権限変更
以下コマンドにて、Tomcatの所有者を変更する
chown -R tomcat:tomcat tomcat9/
systemdユニットファイルの作成
OS上のサービスとして起動させるための設定を行う
環境変数ファイルを作成
以下のコマンドにて、環境変数を設定する。
vim /etc/sysconfig/tomcat
記述内容
JAVA_HOME="/opt/jdk-16.0.1/"
CATALINA_HOME="/opt/tomcat9"
CATALINA_BASE="/opt/tomcat9"
CATALINA_OPTS="-server -Xmx128m -Xms128m -XX:MaxMetaspaceSize=128m"
systemdユニットファイルを作成
以下のコマンドにて、ユニットファイルを作成する。
vim /usr/lib/systemd/system/tomcat.service
記述内容
[Unit]
Description=Apache Tomcat application server.
[Unit]
Description=Apache Tomcat application server.
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat9/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
ExecReStart=/opt/tomcat9/bin/shutdown.sh;/opt/tomcat9/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
ユニットファイルのリロード
以下コマンドにて、ユニットファイルをリロードする
systemctl daemon-reload
FireWallの設定
以下コマンドにて、8080ポート、8009ポートを開放する
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8009/tcp --permanent
firewall-cmd --reload
サービスの設定
以下のコマンドにて、自動起動,サービスの起動を行う。
systemctl enable tomcat.service
systemctl start tomcat.service
Tomcatの設定
Tomcatの管理用画面へアクセスできるようにする
{CATALINA_HOME}/conf/tomcat-users.xmlを編集し、以下の設定を行う。
username, password は希望の値を登録してください。
<role rolename="manager"/>
<user username="*****" password="*****" roles="manager"/>
{CATALINA_HOME}/webapps/manager/META-INF/context.xmlを編集し、以下をコメントアウトする。
上記設定が完了したら、Tomcatを再起動する
systemctl restart tomcat.service
管理画面へアクセス
以下URLにて、管理画面へアクセスする
http://ホスト名:8080/manager/html/
ログイン認証のダイアログが表示されるため、tomcat-users.xmlに指定したユーザ,パスワードを入力し、ログインする。
以下のページが表示されれば完了
ApacheとTocmatを連携
通常Webページは、80番ポートを使用してアクセスされるが、
TocmatでJavaの動的処理を行う場合は、8080ポートが使用される。
ApacheとTocmatを連携させ、80番ポートでのアクセスを8080番へ流してやることで、
8080ポートの指定をせずにアクセスが可能になる。
これを行うのに、AJPというプロトコルを使用する
conf.modules.d/00-proxy.confの編集
{apacheインストールディレクトリ}/conf.modules.d/00-proxy.confを編集し、以下を末尾に追記する
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
※確認したが、本サーバでインストールしたApacheには、標準で登録されていた。
すでに記載されている場合は、設定不要です。
連携するパスを定義
{apacheインストールディレクトリ}/conf.d/にxxx.confファイルを作成し、以下の内容を記述する。
※今回は、Tomcat管理画面を連携してみる
※xxx.confのxxxは任意の名前を指定
ProxyPass /tomcat ajp://localhost:8009/manager/html
すべてのリクエストをTomcatへ連携させる場合は、以下の設定を行う。
ProxyPass / ajp://localhost:8009/
conf.d/ディレクトリ配下の*.confファイルは、すべて読み込むよう別の設定ファイルに記述されている。
Tomcatのserver.xmlを変更
{CATALINA_HOME}/conf/server.xmlを編集し、以下の設定を行う。
①8080ポートのアクセスを禁止(コメントアウト)
②8009での連携を定義
コメント