質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

5392閲覧

tomcatをブラウザで表示できない

kachikata96

総合スコア28

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/07/01 10:06

編集2020/07/01 10:07

いつもお世話になります。

今回、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エラー表示


気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2020/07/01 12:00

"ss -tln" または "netstat -tln" で 8009 番ポートが LISTEN していますでしょうか? server.xml ではコメントアウトされているように見えます。
kachikata96

2020/07/02 00:52

言われてみればコメントアウトされていました。 ご指摘ありがとうございます。 試しにコメントアウトを外してみましたが503表示のままですね。
guest

回答1

0

ベストアンサー

https://teratail.com/questions/255847 と同じだと思います。
server.xml の address=secretRequired="false" を確認ください。


(2020/07/02 14:05) 追記

[Thu Jul 02 04:52:36.143135 2020] [proxy:error] [pid 10711] (111)Connection refused: AH00957: AJP: attempt to connect to 54.250.194.14:8009 (54.250.194.14) failed

Public IP (グローバルIPアドレス)にはアクセスできません。
Private IP (ローカルIPアドレス)、または、127.0.0.1 にします。

セキュリティグループも見直した方がいいと思います。
外部から(全世界から) 8080, 8009, 3306 への接続は必要ですか?

投稿2020/07/02 02:05

編集2020/07/02 05:05
TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kachikata96

2020/07/02 04:38

回答ありがとうございます。 とても参考になります。 server.xmlで以下のようにしてみましたがやはり503エラーになってしまいます。 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" port="8009" secretRequired="false" address="127.0.0.1" redirectPort="8443" />
TaichiYanagiya

2020/07/02 04:43

503 の原因を調べましょう。Apache httpd の error_log を確認ください。
kachikata96

2020/07/02 04:55

view /etc/httpd/logs/error_logでエラーログを見たところ以下のようになりました。 やはりプロキシの設定に問題がありそうです。 [Thu Jul 02 04:52:27.912528 2020] [mpm_prefork:notice] [pid 10548] AH00170: caught SIGWINCH, shutting down gracefully [Thu Jul 02 04:52:28.958757 2020] [suexec:notice] [pid 10708] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Thu Jul 02 04:52:28.971339 2020] [lbmethod_heartbeat:notice] [pid 10708] AH02282: No slotmem from mod_heartmonitor [Thu Jul 02 04:52:28.971378 2020] [http2:warn] [pid 10708] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processe d in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work , but the HTTP/2 protocol will be inactive. [Thu Jul 02 04:52:28.971384 2020] [http2:warn] [pid 10708] AH02951: mod_ssl does not seem to be enabled [Thu Jul 02 04:52:28.973872 2020] [mpm_prefork:notice] [pid 10708] AH00163: Apache/2.4.43 () configured -- resuming normal operations [Thu Jul 02 04:52:28.973892 2020] [core:notice] [pid 10708] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' [Thu Jul 02 04:52:36.143135 2020] [proxy:error] [pid 10711] (111)Connection refused: AH00957: AJP: attempt to connect to 54.250.194.14:8009 (54.250.194.14) failed [Thu Jul 02 04:52:36.143193 2020] [proxy_ajp:error] [pid 10711] [client 122.103.121.174:52800] AH00896: failed to make connection to backend: 54.250.194.14
kachikata96

2020/07/02 05:59 編集

追記ありがとうございます。 グローバルIPアドレスには接続できないとのことだったので、proxyを以下のようにしてみました。 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://グローバルIPアドレス: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://127.0.0.1:8009/ それとセキュリティグループも見直した方がいいとのことだたので 8080, 8009, 3306 への接続許可を削除しておきました。 しかし、今度はサイトにアクセスできませんとなってしまいました。
kachikata96

2020/07/02 06:01

因みにエラーログはこうなりました。 エラー自体は消えたように思えます。 [Thu Jul 02 05:57:01.335031 2020] [mpm_prefork:notice] [pid 11064] AH00170: caug ht SIGWINCH, shutting down gracefully [Thu Jul 02 05:57:02.383153 2020] [suexec:notice] [pid 11264] AH01232: suEXEC me chanism enabled (wrapper: /usr/sbin/suexec) [Thu Jul 02 05:57:02.395892 2020] [lbmethod_heartbeat:notice] [pid 11264] AH02282: No slotmem from mod_heartmonitor [Thu Jul 02 05:57:02.395933 2020] [http2:warn] [pid 11264] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive. [Thu Jul 02 05:57:02.395938 2020] [http2:warn] [pid 11264] AH02951: mod_ssl does not seem to be enabled [Thu Jul 02 05:57:02.398509 2020] [mpm_prefork:notice] [pid 11264] AH00163: Apac he/2.4.43 () configured -- resuming normal operations [Thu Jul 02 05:57:02.398533 2020] [core:notice] [pid 11264] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
TaichiYanagiya

2020/07/02 14:05

セキュリティグループを戻すとアクセスできるのですか? トラブルシューティングは条件を 1つずつ変えて確認しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問