いつもお世話になります。
今回、webアプリ公開のためにEC2をamazon linux 2OSでサーバー構築をしていました。
サーバー構築自体初めてだったので下記の記事を参考に作業を進めていました。
https://qiita.com/shimatter/items/441ac14a6890ba093a92
記事の最後の手順まで進めることができましたが、ブラウザにtomcatに表示させることができず困っています。
表示されたのは503エラーで以下のメッセージが書かれていました
Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
503エラーの場合どのような可能性が考えられるでしょうか?
〇実際にやったこと
・EC2インスタンスの作成
amazon Linux 2 AMIを選択
セキュリティグループの設定
HTTP TCP 80 0.0.0.0/0 -
HTTP TCP 80 ::/0 -
カスタム TCP TCP 8080 0.0.0.0/0 -
カスタム TCP TCP 8009 0.0.0.0/0
SSH TCP 22 0.0.0.0/0 -
MYSQL/Aurora TCP 3306 0.0.0.0/0 -
MYSQL/Aurora TCP 3306 ::/0 -
HTTPS TCP 443 0.0.0.0/0 -
HTTPS TCP 443 ::/0
・TeraTermをインストール
・EC2に接続
・JDKインストール
# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
・tomcatユーザー作成
# useradd -s /sbin/nologin tomcat
・tomcatのダウンロード
# cd /opt # wget http://ftp.riken.jp/net/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz
・tomcatを展開
# tar -xvzf apache-tomcat-9.0.36.tar.gz
・シンボリックリンク作成
# ln -s /opt/apache-tomcat-9.0.36 /opt/tomcat
・環境変数の設定
# vi /etc/profile 元あったコードは文字制限のため省略 以下の3行を追加 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_6 4 export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64 /jre export CATALINA_HOME=/opt/tomcat
・反映
# source /etc/profile
・反映確認
# /opt/tomcat/bin/version.sh
・反映結果
Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64/jre Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Server version: Apache Tomcat/9.0.36 Server built: Jun 3 2020 17:07:09 UTC Server number: 9.0.36.0 OS Name: Linux OS Version: 4.14.177-139.254.amzn2.x86_64 Architecture: amd64 JVM Version: 1.8.0_252-b09 JVM Vendor: Oracle Corporation
・tomcat起動
/opt/tomcat/bin/startup.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64/jre Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Tomcat started.
ブラウザでの表示確認
・tomcat自動起動設定
新規ファイルでtomcatのサービスファイルを作成 # vi /etc/systemd/system/tomcat.service 以下のコードを入力 [Unit] Description=Apache Tomcat 9 After=network.target [Service] User=tomcat Group=tomcat Type=oneshot PIDFile=/opt/tomcat/tomcat.pid RemainAfterExit=yes ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh [Install] WantedBy=multi-user.target
・反映
# systemctl daemon-reload
・自動反映
# systemctl enable tomcat
・user,groupはtomcatに変更
# chown -R tomcat:tomcat /opt/tomcat # chown -R tomcat:tomcat /opt/apache-tomcat-9.0.36
・自動起動の確認
# reboot
・再起動後にステータスを確認。
# systemctl status tomcat ● tomcat.service - Apache Tomcat 9 Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2020-07-01 07:48:50 UTC; 1h 38min ago Process: 3041 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 3041 (code=exited, status=0/SUCCESS) CGroup: /system.slice/tomcat.service mq3068 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/c... Jul 01 07:48:50 ip-172-00-00-00.ap-northeast-1.compute.internal systemd[1]: S... Jul 01 07:48:50 ip-172-00-00-00.ap-northeast-1.compute.internal systemd[1]: S... Hint: Some lines were ellipsized, use -l to show in full.
・webアプリケーションマネージャーの設定
webアプリの配備や管理をGUIで行えるようにする。
# vi /opt/tomcat/conf/tomcat-users.xml 以下のコードを記入 <role rolename="manager-gui"/> <user username="XXXX" password="XXXX" roles="manager-gui"/>
・allowの設定を修正
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="\d+.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1" />
・再起動し、設定反映
# systemctl restart tomcat
・Apache httpdのインストールと設定
インストール
# yum install httpd
確認
# httpd -version Server version: Apache/2.4.43 () Server built: May 8 2020 17:02:41
・Apache自動起動設定
# systemctl enable httpd
・設定確認
systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-07-01 08:11:29 UTC; 1h 25min ago Docs: man:httpd.service(8) Main PID: 3584 (httpd) Status: "Total requests: 12; Idle/Busy workers 100/0;Requests/sec: 0.00235; Bytes served/sec: 2 B/sec" CGroup: /system.slice/httpd.service tq3584 /usr/sbin/httpd -DFOREGROUND tq3585 /usr/sbin/httpd -DFOREGROUND tq3586 /usr/sbin/httpd -DFOREGROUND tq3587 /usr/sbin/httpd -DFOREGROUND tq3588 /usr/sbin/httpd -DFOREGROUND tq3589 /usr/sbin/httpd -DFOREGROUND tq3631 /usr/sbin/httpd -DFOREGROUND mq3639 /usr/sbin/httpd -DFOREGROUND Jul 01 08:11:29 ip-000-00-00-00.ap-northeast-1.compute.internal systemd[1]: S... Jul 01 08:11:29 ip-000-00-00-00.ap-northeast-1.compute.internal systemd[1]: S... Hint: Some lines were ellipsized, use -l to show in full.
・reboot後、ステータスを確認
systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-07-01 08:11:29 UTC; 1h 26min ago Docs: man:httpd.service(8) Main PID: 3584 (httpd) Status: "Total requests: 12; Idle/Busy workers 100/0;Requests/sec: 0.00231; Bytes served/sec: 2 B/sec" CGroup: /system.slice/httpd.service tq3584 /usr/sbin/httpd -DFOREGROUND tq3585 /usr/sbin/httpd -DFOREGROUND tq3586 /usr/sbin/httpd -DFOREGROUND tq3587 /usr/sbin/httpd -DFOREGROUND tq3588 /usr/sbin/httpd -DFOREGROUND tq3589 /usr/sbin/httpd -DFOREGROUND tq3631 /usr/sbin/httpd -DFOREGROUND mq3639 /usr/sbin/httpd -DFOREGROUND Jul 01 08:11:29 ip-172-31-11-46.ap-northeast-1.compute.internal systemd[1]: S... Jul 01 08:11:29 ip-172-31-11-46.ap-northeast-1.compute.internal systemd[1]: S... Hint: Some lines were ellipsized, use -l to show in full.
・AJPプロトコルでapacheとtomcatの連携
AJPプロトコルの設定があることを確認
# view /opt/tomcat/conf/server.xml ※文字数制限のため一部のみ表示 <!-- Define an AJP 1.3 Connector on port 8009 --> <!-- <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" /> -->
・モジュールの有効設定
ProxyPass / ajp://000-00-00-00:8009/を追加
vi /etc/httpd/conf.modules.d/00-proxy.conf # This file configures all the proxy modules: ※文字制限のため一部のみ表示 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ProxyPass / ajp://000-00-00-00:8009/
・Apache httpdの再起動を行い、起動を確認
# systemctl restart httpd
・ブラウザ503エラー表示
回答1件
あなたの回答
tips
プレビュー