LoginSignup
5

More than 5 years have passed since last update.

ssh接続しないとHTTPリクエストがタイムアウトするWebアプリを見た

Last updated at Posted at 2016-03-10

※ 現在なぜssh接続しないとHTTPリクエストがタイムアウトするのか
根本的な原因がわかっておりません
ご意見やアドバイスよろしくお願い致しますm(__)m

動作させた環境

クライアント

  • MacBookPro Elcaptian

サーバ

  • Amazon Linux AMI 2015.09
  • Java8
  • Tomcat8
  • MySQL 5.6
  • httpd

前提

サーバ環境

Amazon Linux上にJava8, Tomcat8, MySQLをインストールし
落としてきた製品版Javaアプリ(以下、アプリ)を
/usr/share/tomcat8/webapps/に配置しています
(Tomcat8, MySQLはデーモンを立ち上げていることとします)

他にもアプリを動作させるために幾つかパッケージをインストールしています。
アプリはwarファイルで配布されています

接続

サーバ接続する際はVPN経由でssh接続を行っています
なのでサーバもプライベートネットワークのものとして扱っています

ファイアーウォール

ssh(22) / Tomcat(8080)

プライベートネットワーク内IPからのインバウンドのみ許可しています

障害(と言うか不明点

題名にも有りますが、

ssh接続しないとHTTPリクエストがタイムアウトします

※ ただし一度でもssh接続すれば
ssh接続を切ったとしてもHTTPリクエストがタイムアウトすることはありません

再現方法

  1. Webページにアクセス(繋がらない?
  2. sshでサーバに接続
  3. Webページにアクセス(繋がる!!
  4. Wifiを切る
  5. ssh接続をせず再度Webページにアクセス(繋がらない!?

調査途中結果

調査にあたって、パケットとログを監視しました

パケット

tcpdumpコマンドを使ってパケットがアプリに渡ってくるか監視

$ sudo tcpdump -i eth0 port 8080

ログ

Tomcatのログファイルをtail -fコマンドで監視

$ sudo tail -f /var/logs/tomcat8/....log

結果

HTTPリクエストがタイムアウトする時
パケットもTomcatのログにも足跡が残っていて
正常にTomcatまではアクセスしていることが分かりました

なので、アプリ側で制御しているという所までは理解することが出来ました

そこに加えてssh接続済みのクライアントのネットワークを一度切断し
再度HTTPリクエストを送るとタイムアウトすることから

クライアント側に何らかの情報が?

ssh接続情報をキャッシュさせてたが、ネットワークを切ったことので情報が消えた?

でもHTTPリクエストが着ているのだからレスポンスは返せるよね?

んー?? ←イマココ

他には展開されたwarファイルを確認してみたが、
それっぽいところは見当たらず
(アプリ側のフィルターがあるんじゃないかと推測したのだが…

という現状になっております
何か進捗があり次第追記していこうと思います

冒頭でも記載しましたが
もし心当たりやアドバイスがありましたら是非よろしくお願い致します!!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5