スーの日々の積み重ねブログ

溜め込んでおいたほうが良いと思った事柄をドンドン書きたいですね。※ただし有益とは言ってない。

アパッチで雄叫び

昨年度末にシステムを導入した Web サーバの一部機能が不調らしい。
そんな報告を受けたのが先週の金曜日。
今日まで平日まる2日かけて解決してない問題を報告する。

<環境>

◎サーバ

◎クライアント

 

よくある感じです。
アパさんが受けて ajp でトムさんに振り分けるアレです。

それで「不調」っていうのが、こんな感じの内容なんです。 

<現在起きてること>

クライアントから Windows バッチを実行し WGET を使ってサーバからデータをダウンロードする処理があるが、WGET から発行したリクエストが途中で終わってしまいダウンロード結果が 0 バイトになってしまっている。

 

あーハイハイ、タイムアウトね。

まぁ企業イントラの中の話だし、Web 画面もガツガツ使ってるわけでもないから Apacheタイムアウト設定でも直しておきゃあいんだろう。

 

なんて思っていたのになかなか上手くいかない!
結果は前述の通り未だに改善していないため、今日行った作業と起きた事象を忘れないうちにまとめておきたい。 

<そもそもタイムアウトの設定はどこに入れればいいんだ?>

Apache にも Tomcat にも、それをラッパーしている Java 側にも、さらに言えば WGET にもタイムアウトの設定がある。

うーん、どれだか分かんないから、とりあえず全部に「タイムアウトは30分」の設定を入れてみよう! それで上手くいったら関係なさそうなところからちょっとずつもとに戻していこう!!(この辺の発想がサーバ管理者ではないところなんだと思う)。

 ◎Apache

  • conf/httpd.conf
     一番下に「Timeout 1800」を追記。
     更に下に「ProxyTimeout 1800」も追記。
  • conf/extra/httpd-proxy.conf
     ProxyPass ajp/~~~ の後ろに「timeout=1800」を追記。

 ◎Tomcat

 ◎Java 側の設定

  • web.xml
     <session-config> の <session-timeout> を「1800」に変更。

WGET

  • パラメータ
     「-T 1800 」を追加。

 

結果! ちーーーーっとも上手く行かない!!

全部必ず5分きっかりで WGET が 0 バイトのファイルを作りやがる!!!

ウラウラウラウラウララララァァァァーーーー!!!(※これが今回のタイトル)

<上手く行かない理由として考えられること>

  • Apache の設定、ミスってんでね?
    → SYNTAX OK は一応確認してる。
  • Apache の設定、反映されてなくね?
    → 念のため設定を変えるたびに PC 毎再起動してた(以前に Apache 再起動だけでは反映されなかった苦い思い出あり)

Tomcat のログを見る限りでは 5 分経過時点でエラーっぽいことを吐いていないので、多分 Apache なんだと思う。

 

明日も戦います!