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

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

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

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

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

Q&A

解決済

2回答

665閲覧

Tomcatでポート8080が開かない

mi_tech_otter

総合スコア1

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

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

0グッド

0クリップ

投稿2023/12/27 03:13

編集2023/12/28 09:12

実現したいこと

  • ポート8080が開くようにする
  • テストサーバーでサーバーのデフォルトぺージを表示する

前提

テストサーバーへの接続を試みています。
リバースプロキシサーバー: Nginx
アプリケーションサーバー: Tomcat
データベースサーバー: PostgreSQL
という構成で https://example.com/ にアクセスし「502 Bad Gateway」が返されたため、Nginxのエラーログを確認したところ、以下のエラーメッセージが発生していました。
さらに調査したところ、ss -tln | grep :8080 でポート8080が開いていないことがわかり、いくつかの方法を試しましたがまだ開いていません。

Nginxのエラーメッセージ

2023/12/27 01:59:44 [error] connect() failed (111: Connection refused) while connecting to upstream, client: 152.XXX.XX.XX, server: example.com, request: "GET /masked-page1 HTTP/1.1", upstream: "https://[::1]:8080/masked-page1", host: "35.XXX.XX.XX" 2023/12/27 01:59:47 [error] no live upstreams while connecting to upstream, client: 152.XXX.XX.XX, server: example.com, request: "GET /masked-page2 HTTP/1.1", upstream: "https://localhost/masked-page2", host: "35.XXX.XX.XX"

試したこと

  1. ポート8080が使用中でないことを確認した
  2. Tomcat、Nginx、PostgreSQLを再起動した
  3. Tomcat、Nginx、PostgreSQLが正常に起動していることを確認した
  4. ファイアウォール設定を確認した
  5. SSL証明書と秘密鍵の存在を確認した
  6. Tomcatでポート8080が設定されていることを確認した
  7. Nginxのリバースプロキシ設定で「proxy_pass https://localhost:8080/ ;」を確認
  8. SSLキーストアの権限がなく、Tomcatがプロトコルハンドラの初期化に失敗していたため、ファイルの所有者をTomcatの実行ユーザーに変更し、権限を600に変更したが改善しなかった

補足情報

ホストOS: Windows 11 Home
仮想化プラットフォーム: Oracle VirtualBox 7.0.10
仮想マシン: Rocky Linux 9.2
ターミナルエミュレータ: Tera Term 5.0 beta1
アプリケーションサーバー: Apache Tomcat/9.0.70
リバースプロキシサーバー: nginx/1.20.1
データベースサーバー: psql (PostgreSQL) 13.11

何卒よろしくお願いいたします。

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

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

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

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

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

y_waiwai

2023/12/27 04:24

同じLAN内からはアクセスできるんでしょうか
mi_tech_otter

2023/12/27 05:43 編集

コメントありがとうございます。 同じLAN内の別のPCから https://example.com/ にアクセスしてみましたが、自身の環境と同じく 502 Bad Gateway と返されました。 https://localhost:8080/ も試したところ、ERR_CONNECTION_REFUSED と返されました。
y_waiwai

2023/12/27 06:15

そのアクセス法、そもそも間違ってます ぐぐるなりしてTomcatの記事を読んでアクセスできるようにしましょう
mi_tech_otter

2023/12/27 06:29

ありがとうございます。 調べます。
TaichiYanagiya

2023/12/28 01:22

8080 番ポートはデフォルトでは HTTPS ではなくHTTP だと思います。 あえて 8080 番ポートに HTTPS の設定をしたのですか?
mi_tech_otter

2023/12/28 02:16

novelistoryさん、TaichiYanagiyaさんコメントありがとうございます。 ポート8080が開かなくなった際に、一つ試そうと思いHTTPSに設定しました。 proxy_passのlocalhostを127.0.0.1に変更する、しない、HTTPSをHTTPに変更する、しないの4パターンを試しましたが、「connect() failed」は改善しませんでした。 引き続き調査します。
TaichiYanagiya

2023/12/28 08:37

Tomcat は起動しているのですか? "ss -tln | grep :8080" または "netstat -tln | grep :8080" で 8080 番ポートが LISTEN されているか確認ください。
mi_tech_otter

2023/12/28 09:11

コメントありがとうございます。 Tomcat 起動確認後、ポート8080がLISTENされていないことがわかり、1~8の手順を試した次第です。 説明が至らず申し訳ありません。 質問に上記を追記いたします。
TaichiYanagiya

2023/12/28 09:14

Tomcat が起動していないのですね。では Tomcat のログを確認ください。
mi_tech_otter

2024/01/15 07:18

お返事が遅くなり申し訳ありません。 Tomcat のログを確認し、SSL 設定を見直したことで解決いたしました。 誠にありがとうございました。
guest

回答2

0

  1. TomcatをインストールしているPC上でブラウザを起動し、アドレス欄に、localhost:8080 と入れてデフォルトページが表示されるか見る
  2. TomcatをインストールしているPCのローカルIPを調べておいて、同じLANのべつPCのブラウザで、アドレス欄に、ローカルIP:8080 といれてデフォルトページが表示されるか見る
  3. グローバルIPを調べ、別のネットワークのPC(スマホでも可)から、グローバルIP:8080 を見てデフォルトページが表示されるか見る

と、試してみてください。1,と2,はすんなり行くでしょうけど、3,はネットワークの知識をもっとつけないと無理です。
がんばって勉強しよう

投稿2023/12/28 05:29

編集2023/12/28 05:30
y_waiwai

総合スコア87778

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

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

mi_tech_otter

2023/12/28 09:14

ご回答ありがとうございます。 必要な学習を進めていきます。 また進捗がありましたらご報告いたします。
mi_tech_otter

2024/01/15 07:30

Tomcat のログを確認し、SSL 設定を見直したことで解決いたしました。 誠にありがとうございました。
guest

0

自己解決

以下の手順でポート 8080 を開くことに成功し、自己解決しました。
Tomcat の SSL 設定に失敗していたことが原因でした。


  1. TaichiYanagiya 様の 2023/12/28 18:14 のコメントを参考に Tomcat のログを確認する

    sudo cat /opt/tomcat/logs/catalina.out # /opt/tomcat/logs/catalina.out org.apache.catalina.util.LifecycleBase.handleSubClassException コンポーネント [Connector[HTTP/1.1-8080]] の初期化に失敗しました org.apache.catalina.LifecycleException: プロトコルハンドラの初期化に失敗しました (中略) Caused by: java.io.IOException: 別名 [domain.name] はキーエントリを発見できません

    このメッセージはエラーログに出力されなかったため、無関係と思い込んでいました。

  2. 証明書と秘密鍵を合わせて pkcs12 形式のファイルに変換する

    cd /証明書および秘密鍵の保存用ディレクトリ sudo openssl pkcs12 -export -in domain.name.crt -inkey domain.name.key -out domain.name.p12 -name domain.name

    domain.name.crt: 証明書 (Nginx の SSL 設定時、SSL証明書の設定 Nginx を参考に作成した)
    domain.name.key: 秘密鍵
    domain.name.p12: pkcs12 形式のファイル

  3. キーストアファイルに保存する

    keytool -importkeystore -deststorepass pass -destkeypass pass -destkeystore domain.name.jks -srckeystore domain.name.p12 -srcstoretype PKCS12 -srcstorepass pass -alias domain.name

    参考: Nginx+TomcatでLet's EncryptのSSL設定

  4. SSL設定
    /opt/tomcat/conf/server.xml
    <Connector port="8080"/> 内にキーストアファイルを指定

  5. サーバー再起動

    sudo systemctl restart postgresql sudo systemctl restart tomcat sudo systemctl restart nginx
  6. ポート 8080 起動確認

    sudo ss -tuln | grep 8080 # 8080 が表示された

コメントおよびご回答いただき誠にありがとうございました。

投稿2024/01/15 07:16

編集2024/01/15 07:26
mi_tech_otter

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問